[java] Mockito를 사용하여 특정 메소드에 전달된 인자들로 다른 메소드를 호출했을 때 인자들 중 특정 값이 존재하는지 확인하는 방법은?
// 테스트 대상 객체 생성
SomeClass someClass = Mockito.mock(SomeClass.class);

// 메소드 호출 시 인자들 설정
someClass.someMethod("arg1", "targetValue", "arg3");

// 다른 메소드가 호출될 때 특정 인자가 있는지 확인
Mockito.verify(someClass).anotherMethod(Matchers.contains("targetValue"));

위의 예시에서 someMethod를 호출할 때 "targetValue"라는 값이 전달되었는지, 그리고 anotherMethod가 이 값을 포함하고 있는지를 확인하고자 합니다. 이를 위해 verify 메소드와 contains 매처(matcher)를 사용합니다.

contains 매처는 전달된 인자들 중에 특정 값을 포함하는지를 확인하는 매처입니다. 위의 예시에서는 anotherMethod가 호출될 때 "targetValue"를 포함하고 있는지 확인하고 있습니다. 만약 "targetValue"를 포함하지 않는 경우 예외가 발생하게 됩니다.

이것은 Mockito를 사용하여 특정 인자를 포함하는지 여부를 확인하는 간단한 방법입니다. Mockito에서는 더 다양한 매처를 제공하므로 필요에 따라 적합한 매처를 선택하여 사용할 수 있습니다.

참고자료:

주의사항: 예시 코드에서 SomeClass는 실제로는 Mock 객체입니다. Mock 객체는 테스트를 위해 가짜 객체를 생성하고 테스트 중에 발생하는 메소드 호출을 확인하기 위해 사용됩니다. 따라서 실제 코드에는 Mock 객체를 사용하지 않고, 실제 인스턴스를 생성하여 사용해야 합니다.