[Spring] Mock argument matcher - any, eq

민지·2023년 11월 27일
0

Spring

목록 보기
17/19

any()

Mockito의 any() 메서드(Argument Matcher)를 이용하면 모든 매개 변수에 대하여 같은 행동을 하는 Mock 객체를 만들 수 있다.

// Service.java
public Page<ArticleDto> searchArticles(SearchType searchType, String searchKeyword, Pageable pageable) {
...
}
// ControllerTest.java
given(articleService.searchArticles(null, null, any(Pageable.class)));

Pageable 클래스 타입이라면 어떠한 객체도 처리할 수 있도록 any()가 사용되었다. any()를 사용할 때에는 특정 클래스의 타입을 지정해주는 것이 좋다.
주의할 점은 matchers를 사용하게 되면 모든 argument에 다 쓰던지 아니면 안쓰던지 해야지 argument 몇개만 사용하게 되면 에러가 발생한다.



eq()

arguments matcher를 사용중 특정한 값을 사용하고 싶을때는 eq() method를 사용해야 한다.

// ControllerTest.java
given(articleService.searchArticles(eq(null), eq(null), any(Pageable.class)));
profile
개발일지

0개의 댓글