문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
java:mockito [2021/09/03 17:27] kwon37xi |
java:mockito [2022/08/24 15:51] kwon37xi [mockStatic] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Mockito ====== | ====== Mockito ====== | ||
* [[https:// | * [[https:// | ||
- | * [[http://refcardz.dzone.com/ | + | |
+ | | ||
* [[https:// | * [[https:// | ||
줄 46: | 줄 47: | ||
* [[https:// | * [[https:// | ||
+ | <code java> | ||
+ | // MockitoRunner 사용시 | ||
+ | @Captor | ||
+ | ArgumentCaptor< | ||
+ | // 코드로 직접 지정 | ||
+ | ArgumentCaptor< | ||
+ | </ | ||
===== initMocks ===== | ===== initMocks ===== | ||
* [[https:// | * [[https:// | ||
줄 65: | 줄 73: | ||
</ | </ | ||
+ | ===== JUnit 5 ===== | ||
+ | * [[java: | ||
+ | * [[https:// | ||
+ | |||
+ | <code java> | ||
+ | @ExtendWith(MockitoExtension.class) | ||
+ | class UserServiceTest { | ||
+ | @Mockito ... | ||
+ | } | ||
+ | |||
+ | // Strictness 를 설정하려면 아래 추가. default가 STRICT_STUBS임. LENIENT 로 변경하기 | ||
+ | @MockitoSettings(strictness = Strictness.LENIENT) | ||
+ | </ | ||
+ | * '' | ||
+ | ===== mockStatic ===== | ||
+ | * static method mocking. 특히 '' | ||
+ | * 항상 '' | ||
+ | |||
+ | |||
+ | <code java> | ||
+ | import static org.mockito.Mockito.mockStatic; | ||
+ | |||
+ | assertEquals(" | ||
+ | try (MockedStatic< | ||
+ | mocked.when(Foo:: | ||
+ | // 혹은 Mockito.when(Foo.method()).thenReturn(" | ||
+ | assertEquals(" | ||
+ | mocked.verify(Foo:: | ||
+ | } | ||
+ | assertEquals(" | ||
+ | </ | ||
+ | * 만약 mocking 할 필요가 없는 다른 static method가 호출된다면 실제 코드를 호출하게 명시적으로 지정해야 한다. | ||
+ | <code java> | ||
+ | when(LocalDateTime.from(Mockito.any())).thenCallRealMethod(); | ||
+ | </ | ||
+ | ===== mockConstruction ===== | ||
+ | * 생성자 mocking | ||
+ | * 항상 '' | ||
+ | |||
+ | |||
+ | <code java> | ||
+ | | ||
+ | try (MockedConstruction mocked = mockConstruction(Foo.class)) { | ||
+ | Foo foo = new Foo(); | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | | ||
+ | |||
+ | </ | ||
===== 참고 ===== | ===== 참고 ===== | ||
줄 73: | 줄 132: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |