Android Test doubles
사용 언어: Kotlin 2.3.10
사용 버전: Android Studio Otter 3 Feature Drop | 2025.2.3
아래 공식 문서에도 소개되어 있습니다.
https://developer.android.com/training/testing/fundamentals/test-doubles
사용 버전: Android Studio Otter 3 Feature Drop | 2025.2.3
안드로이드 Test doubles에 대해 알아보겠습니다.
Test double(테스트 더블)은 test를 진행할 때 사용하는 기법 중 하나입니다.아래 공식 문서에도 소개되어 있습니다.
https://developer.android.com/training/testing/fundamentals/test-doubles
Test double에는 다음과 같은 종류가 있습니다.
• Fake
• Mock
• Stub
• Dummy
• Spy
• Shadow
1. Fake(페이크)
테스트에 적합하게 만든 작동 가능한 class입니다. 실제 제품에는 적합하지 않습니다.
가벼우며 Mocking(마킹)이 필요하지 않습니다.
예시: in-memory database(인 메모리 데이터베이스)
2. Mock(마크)
어떻게 동작할 것인지를 미리 정의하고 상호작용을 예상합니다. Mock는 내가 정의한 행동과 일치하지 않으면 테스트를 실패시킵니다. 보통 Mocking용 framework(프레임워크)로 만듭니다.
예시: database method(메서드)가 정확히 한 번 호출되는지 확인하는 작업
3. Stub(스텁)
Mock와 비슷하지만 예상하는 작업이 없습니다. 보통 Mockiing framework로 만들어집니다.
Fake가 Stub보다 간편해서 선호됩니다.
4. Dummy(더미)
Parameter(파라미터)로 전달하지만, 실제로 테스트에 사용되지 않는 것들을 말합니다.
예시: 클릭 이벤트에 빈 함수를 넣어주는 행위
5. Spy(스파이)
실제 object(오브젝트)를 감싸는 wrapper(레퍼)입니다. 추가적인 정보를 추적하여 얻고 싶을 때 만듭니다. Mock와 비슷합니다만, spy는 복잡성을 높이기 때문에 사용이 기피되며 Fake나 Mock를 사용합니다.
6. Shadow(쉐도우)
Robolectric(로보렉트릭) 테스트에 사용되는 fake를 말합니다.
Mock의 경우, 행동을 테스트하는 데에 초점이 맞춰져있기 때문에 실제 class를 사용할 수도 있고, fake를 사용할 수도 있을 거 같네요.
끝.
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.