학습 Mocktio - ArgumentCaptor(매개변수 캡처) 캡처 방법 매개변수를 사용하여 검증
1836 단어 mock
ArgumentCaptor 소개
ArgumentCaptor 객체의 forClass(Class
ArgumentCaptor의 Api
argument.capture () 포획 방법 매개 변수
argument.getValue () 는 방법 매개 변수 값을 가져옵니다. 방법이 여러 번 호출되면 마지막 매개 변수 값을 되돌려줍니다.
argument.getallValues() 메서드를 여러 번 호출한 후 여러 매개변수 값을 반환합니다.
응용 실례
@Test
public void argumentCaptorTest() {
List mock = mock(List.class);
List mock2 = mock(List.class);
mock.add("John");
mock2.add("Brian");
mock2.add("Jim");
ArgumentCaptor argument = ArgumentCaptor.forClass(String.class);
verify(mock).add(argument.capture());
assertEquals("John", argument.getValue());
verify(mock2, times(2)).add(argument.capture());
assertEquals("Jim", argument.getValue());
assertArrayEquals(new Object[]{"Brian","Jim"},argument.getAllValues().toArray());
}
먼저 ArgumentCaptor를 구축하려면 캡처 매개변수를 전달해야 하는 객체가 필요합니다. 예를 들어 String입니다.다음에verify 방법의 매개 변수에서argument를 호출해야 합니다.capture () 방법으로 입력한 파라미터를 포획한 다음에argument 변수에 파라미터 값을 저장하여argument를 사용할 수 있습니다.getValue()를 가져옵니다.어떤 대상이 여러 번 호출된 후, 예를 들어mock2 대상은 이때argument를 호출합니다.getValue () 는 마지막으로 호출된 인자를 가져옵니다.모든 매개 변수 값을 가져오려면argument을 호출할 수 있습니다.getallValues() 는 매개변수 값의 List를 반환합니다.
어느 정도에 파라미터 포획기와 파라미터 매칭기는 매우 큰 관련성을 가진다.그것들은 모두 모크 대상 매개 변수의 정확성을 확보하는 데 사용된다.그러나 사용자 정의 매개 변수 매칭기의 중용성이 비교적 낮을 때 매개 변수 포획기를 사용하는 것이 더욱 적합하며 마지막에 매개 변수를 검증하기만 하면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#: ForbidAsync와 같은 HttpContext 메서드를 조롱하는 방법은 무엇입니까?단위 테스트를 작성할 때 ForbidAsync, SignInAsync 등과 같은 "HttpContext"메서드를 모의해야 합니다. 이러한 메서드는 확장 메서드이므로 실제로 어떤 메서드를 조롱할지 알아야 합니다. 이것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.