Mockito Argument Matcher 오류 해결 방법

song yuheon·2023년 9월 22일
0

Trouble Shooting

목록 보기
12/57
post-thumbnail

Mockito 오류

위 스크린샷에서 볼 수 있는 오류는 Mockito의 argument matcher를 잘못 사용했을 때 발생하는 것이다.
Mockito에서는 any(), eq(), isNull()과 같은 argument matcher들을 제공하는데, 이러한 matcher를 사용할 때 주의해야 할 점이 있다.

바로!! 한 메서드 호출에서 argument matcher를 사용하기 시작하면 그 메서드의 모든 인자에 대해 matcher를 사용해야한다는 것이다. 그렇지 않으면 위의 오류가 발생하게 된다.

someMethod(someValue, "raw String");

여기서 첫 번째 인자에 대해 any() matcher를 사용하려고 한다면 두 번째 인자에 대해서도 matcher를 사용해야 한다.

someMethod(any(), eq("raw String"));

해결

 when(boardService.createBoard(any(BoardCreateRequestDto.class))).thenReturn(BoardCreateResponseDto.builder()
                .boardName("boardName")
                .boardColor("boardColor")
                .boardInfo("boardInfo")
                .build());

Plus


Mockito Argument Matcher


  1. any()

    • any()는 어떤 종류의 값이던지 받아들이는 matcher이다.
    • someMethod(any())someMethod가 어떤 인자로 호출되더라도 통과되는 조건을 나타낸다.
  2. eq()

    • eq()는 특정 값을 기대하는 matcher이다.
    • someMethod(eq("specificValue"))someMethod가 "specificValue"라는 문자열 인자와 함께 호출될 때만 통과되는 조건을 나타낸다.
  3. isNull()

    • isNull()은 null 값을 기대하는 matcher이다.
    • someMethod(isNull())someMethod가 null 인자와 함께 호출될 때만 통과되는 조건을 나타낸다.

profile
backend_Devloper

0개의 댓글