사용자 도구

사이트 도구


java:mockito

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:mockito [2022/08/24 13:53]
kwon37xi [mockStatic]
java:mockito [2023/11/30 14:17] (현재)
kwon37xi [mockStatic]
줄 88: 줄 88:
   * ''LENIENT''는 좋지 잘못된 stub 을 만들고 있다는 의미가 되므로 가급적 ''STRICT_STUB''(기본값)을 유지할것.   * ''LENIENT''는 좋지 잘못된 stub 을 만들고 있다는 의미가 되므로 가급적 ''STRICT_STUB''(기본값)을 유지할것.
 ===== mockStatic ===== ===== mockStatic =====
 +  * Mockito ''3.4.0'' 이상 버전 지원
   * static method mocking. 특히 ''LocalDateTime.now()'' 테스트 등에 좋다.   * static method mocking. 특히 ''LocalDateTime.now()'' 테스트 등에 좋다.
 +  * [[https://www.baeldung.com/mockito-mock-static-methods|Mocking Static Methods With Mockito | Baeldung]]
   * 항상 ''try-with-resources''로 감싸서 할 것.   * 항상 ''try-with-resources''로 감싸서 할 것.
  
줄 98: 줄 100:
 try (MockedStatic<Foo> mocked = mockStatic(Foo.class)) { try (MockedStatic<Foo> mocked = mockStatic(Foo.class)) {
     mocked.when(Foo::method).thenReturn("bar");     mocked.when(Foo::method).thenReturn("bar");
 +    // 혹은 Mockito.when(Foo.method()).thenReturn("bar");
     assertEquals("bar", Foo.method());     assertEquals("bar", Foo.method());
     mocked.verify(Foo::method);     mocked.verify(Foo::method);
줄 103: 줄 106:
 assertEquals("foo", Foo.method()); assertEquals("foo", Foo.method());
 </code> </code>
 +  * 만약 mocking 할 필요가 없는 다른 static method가 호출된다면 실제 코드를 호출하게 명시적으로 지정해야 한다. 
 +<code java> 
 +when(LocalDateTime.from(Mockito.any())).thenCallRealMethod(); 
 +</code>
 ===== mockConstruction ===== ===== mockConstruction =====
   * 생성자 mocking   * 생성자 mocking
java/mockito.1661316789.txt.gz · 마지막으로 수정됨: 2022/08/24 13:53 저자 kwon37xi