목표

  • thenAnswerthenReturn의 차이를 알아본다.

차이점

  • thenReturn은 정적인 반환 값을 설정할 때 사용한다.
  • thenAnswer은 호출에 대한 추가적은 작업이 필요하거나, 동적인 반환 값이 필요할 때 사용한다.

thenAnswer

  • thenAnswerAnswer 타입의 인자를 갖는다.
  • Answer는 함수형 인터페이스이다.

  • 아래 사진처럼 Answer의 메서드의 인자인 InvocationOnMock은 호출한 메소드의 인자를 반환하거나, 해당 메소드를 반환, mocking한 대상 객체를 반환도 할 수 있어서 유연하게 사용할 수 있다.

참고 자료