티스토리 뷰
1. Annotation
2. Mock Object
3. Method Stub
4. Spy Object
5. Assert
6. Verify
2. Mock Object
class UnitRepositoryImplTest {
// Mock 객체 선언
@MockK(relaxUnitFun = true)
lateinit var unitDataSource: UnitDataSource
lateinit var unitRepository: UnitRepository
private val unitRequest = "unitId"
@Before
fun setup() {
MockKAnnotations.init(this)
unitRepository = UnitRepositoryImpl(unitServiceApi, unitDataSource, scheduler, unitMapper, errorTypeMapper)
}
@Test
fun testGetUnit_success() {
every { unitDataSource.getUnit(id.toString()) } returns expected
val result = unitRepository.getUnit(id.toString(), clazz)
Assert.assertEquals(result, expected)
// Mock 객체의 행위 검증
verify {unitDataSource.getUnit(id.toString()) }
}
}
테스트를 수행할 때 실제 모듈을 사용하는 것이 하지않고 그것을 흉내내는 가짜 모듈을 사용하여 테스트의 효용성을 높이는데 사용하는 객체입니다.
mock 객체는 행위 호출의 결과를 설정할 수 있으며, 행위가 호출되었는지 검증(Behavior Verification)할 수 있습니다.
예를들어 인터페이스의 구현체 대신 인터페이스의 동작을 흉내내는 mock 객체를 생성하여 테스트에 사용합니다.
위의 예제코드는 unitRepository 테스트 소스코드 입니다.
unitRepository의 구성요소인 unitDataSource는 테스트 대상에서 제외됩니다.
unitDataSource 실제 객체 대신 mock 객체를 사용하여 실제 행위가 일어나지않게하고 unitDataSource의 행위가 호출 되었는지를 검증합니다.
이를 통하여 unitRepository에만 집중하여 테스트할 수 있습니다.
참고
android/architecture-samples/todoapp - Mock 사용 예제
'Android' 카테고리의 다른 글
[Unit Test] 유닛 테스트 Component - 4. Spy Object (0) | 2021.01.04 |
---|---|
[Unit Test] 유닛 테스트 Component - 3. Method Stub (0) | 2021.01.04 |
[Unit Test] 유닛 테스트 Component - 1. Annotation (0) | 2021.01.04 |
[Unit Test] 유닛 테스트 (0) | 2021.01.04 |
[Android] Web Browser에서 DeepLink로 앱 실행하기 (1) | 2020.12.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 유닛 테스트
- 안드로이드 커스텀 버튼
- 알고리즘
- 안드로이드 단위 테스트
- button padding
- 안드로이드 테스트
- android unit test
- 알고리즘 풀이
- compose ui
- 안드로이드 컴포즈
- Unit
- 구글
- 커스텀 버튼
- unit test
- 안드로이드 유닛 테스트
- Leetcode
- Android
- android compose
- android test
- 안드로이드 종속성 주입
- androud hilt
- android custom button
- 안드로이드
- AOS
- 코딩테스트
- ViewCompositionStrategy
- 유닛테스트
- 테스트
- 컴포즈 초기화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함