목표
thenAnswer
와thenReturn
의 차이를 알아본다.
차이점
thenReturn
은 정적인 반환 값을 설정할 때 사용한다.thenAnswer
은 호출에 대한 추가적은 작업이 필요하거나, 동적인 반환 값이 필요할 때 사용한다.
thenAnswer
thenAnswer
는Answer
타입의 인자를 갖는다.Answer
는 함수형 인터페이스이다.
- 아래 사진처럼
Answer
의 메서드의 인자인InvocationOnMock
은 호출한 메소드의 인자를 반환하거나, 해당 메소드를 반환, mocking한 대상 객체를 반환도 할 수 있어서 유연하게 사용할 수 있다.