4월, 2026의 게시물 표시

Android Test doubles

사용 언어: Kotlin 2.3.10 사용 버전: 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를 말합니다...