- 모킹(Mocking):
- 모킹은 테스트 중에 외부 의존성을 대체하는 과정입니다. 이러한 외부 의존성은 주로 실제 시스템 컴포넌트나 객체와 상호 작용하는 것을 모의화(대체)하는 것을 의미합니다.
- 모킹의 목적은 실제 의존성을 격리하고, 테스트 케이스의 독립성을 보장하여 실제 의존성의 상태나 동작이 테스트 결과에 영향을 미치지 않도록 하는 것입니다.
- 모킹은 주로 테스트 더블(Test Double) 또는 가짜 객체(Fake Object)라고 불리는 객체를 사용하여 실현됩니다. 이러한 객체들은 실제 의존성을 대체하여 원하는 방식으로 동작하도록 설정할 수 있습니다.
- Mockito, EasyMock, PowerMock 등의 모킹 프레임워크를 사용하여 모킹을 수행할 수 있습니다.
- 스터빙(Stubbing):
- 스터빙은 모킹의 한 부분으로, 모의 객체의 메서드 호출에 대한 행동을 지정하는 과정입니다.
- 스터빙을 사용하면 테스트 중에 모의 객체의 메서드 호출에 대한 반환값, 예외 던지기, 메서드 호출 횟수 등을 설정할 수 있습니다.
- 스터빙은 테스트 시나리오에 따라 모의 객체의 메서드가 어떻게 동작해야 하는지를 명시적으로 정의하는 데 사용됩니다.
- 예를 들어, 모의 객체의 getData() 메서드 호출에 대한 스터빙을 수행하여 해당 메서드가 항상 특정 값을 반환하도록 할 수 있습니다.
간단한 스터빙 예제:
javaCopy code
// 모의 객체 생성
MyService myService = mock(MyService.class);
// 모의 객체의 메서드 호출에 대한 스터빙
when(myService.getData()).thenReturn("Mocked Data");
// 모의 객체의 메서드 호출 및 반환값 사용
String result = myService.getData();
이 예제에서 when(myService.getData()).thenReturn("Mocked Data") 부분은 getData() 메서드 호출에 대한 스터빙으로, 이제 해당 메서드는 항상 **"Mocked Data"**를 반환합니다.
요약하면, 모킹은 외부 의존성을 대체하고, 스터빙은 모의 객체의 메서드 호출에 대한 행동을 지정하는 것입니다. 이 두 용어는 테스트 중에 외부 의존성을 제어하고 테스트 시나리오에 따른 동작을 정의하는 데 사용됩니다.
'Android > Unit Test' 카테고리의 다른 글
[Android] Unit Test 작성하기 -5(Mockito-2) (0) | 2023.09.27 |
---|---|
[Android] Unit Test 작성하기 -4(Mockito-1) (0) | 2023.09.27 |
[Android] 구글 Coroutine Test 정리 글 (0) | 2023.09.22 |
[Android] Unit Test 작성하기 -3 (0) | 2023.09.22 |
[Android] Unit Test 작성하기 -2 (0) | 2023.09.22 |