mockito를 사용하여 비즈니스 서비스를 테스트하고 있으며, 모의하려고하는 유틸리티를 사용합니다. 서로 다른 인수를 갖는 유틸리티에 대해 각 서비스 메소드에 적어도 2-3 개의 호출이 있습니다.다른 매개 변수를 사용하여 모의 메소드를 동일하게 처리하십시오.
when(...).thenReturn(...)
을 동일한 방법이지만 다른 인수로 사용하는 권장 방법이 있습니까?
또한 any()
marcher도 사용하고 싶습니다. 가능한가?
업데이트 : 샘플 코드.
@Test
public void myTest() {
when(service.foo(any(), new ARequest(1, "A"))).thenReturn(new AResponse(1, "passed"));
when(service.foo(any(), new ARequest(2, "2A"))).thenReturn(new AResponse(2, "passed"));
when(service.foo(any(), new BRequest(1, "B"))).thenReturn(new BResponse(112, "passed"));
c.execute();
}
public class ClassUnderTest {
Service service = new Service();
public void execute() {
AResponse ar = (AResponse) service.foo("A1", new ARequest(1, "A"));
AResponse ar2 = (AResponse) service.foo("A2", new ARequest(2, "2A"));
BResponse br = (BResponse) service.foo("B1", new BRequest(1, "B"));
}
}
public class Service {
public Object foo(String firstArgument, Object obj) {
return null; //return something
}
}
이것은 상반됩니다. 'any()'를 지정하면, 어떤 것을 의미하지만, 동시에?!? 적절한 matchers를 사용하십시오. – SpaceTrucker
제발 어떤 식 으로든 추천 해주세요. 나는 하나의 매개 변수에 대한 객체를 만들 수 없다. 그래서 나는 any()를 사용하지만, 반항 적으로는 작동하지 않을 것이다. 나는 내가 똑같은 일을하고 싶다고 말하려고했다. –