단위 테스트시 복잡한 매개 변수를 사용하여 메서드 호출을 확인하는 가장 좋은 방법은 무엇입니까? 검증 않는단위 테스트 방법 매개 변수 확인 모범 사례
A) :
class ClassA {
ClassB dependency;
void someFunction(SomeInputForA input) {
// do some thing
dependency.anotherFunction(differentInput);
}
}
내가 someFunction
전화 적절한 입력을 anotherFunction
이라는 것을 검증 생각할 수있는 두 가지 옵션 :
unitUnderTest.dependency = mockClassB;
InputClass expectedDifferentInput = ... ;
verify(mockClassB).anotherFunction(expectedDifferentInput);
B)를 호출에 대한 의존성의 모의에 anotherFunction
와 t을 주장의 호출에 인수 납치범을 그는 속성
unitUnderTest.dependency = mockClassB;
ArgumentCaptor<InputClass> captor = ArgumentCaptor.for(InputClass.class);
verify(mockClassB).anotherFunction(captor.capture());
InputClass capturedInput = captor.getValue();
assertEquals(value, capturedInput.param1);
// and more asserts afterwards
여기에 제안 된 경로가 있습니까? 더 엄격한 느낌이 들기 때문에 객체가 올바른 구현체와 동일하지 않기 때문에 캡처 메소드쪽으로 기울여야합니다.
생각?
값을 캡처하여 메서드로 만들거나 관리하는 경우 값을 어설 션합니다. 광고가 전달되는 경우 (예 : 서비스) A가 적합합니다. – Compass