내가하는 방법이 지정된 파라미터로 호출되었는지 확인하고자하는 시험이 진정한 항상 확인 :봄 부팅 및 Mockito
@Autowired
private Client client;
@Autowired
private OtherClient otherClient;
@Test
public void test() {
client.push();
Mockito.verify(otherClient).publishReset(
Mockito.anyString(),
Mockito.argThat(l -> l.size() == 3)
);
}
문제가 Mockito.verify
전혀 실패하지 않는다는 것입니다을, 내가 바꿀 수 있습니다 l -> l.size() == 3
과 다른 크기의 일치 및 주어진 테스트는 항상 통과합니다. 확인을 위해 내가 arg에 건네는 모든 것을 통과시키는 것은 어떻게 가능합니까?
전체 예 :
@EnableConfigurationProperties
@TestExecutionListeners(listeners = {
DirtiesContextTestExecutionListener.class,
DirtiesContextBeforeModesTestExecutionListener.class,
ServletTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class,
MockitoTestExecutionListener.class,
TransactionalTestExecutionListener.class,
WithSecurityContextTestExecutionListener.class
})
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
@EnableAspectJAutoProxy(proxyTargetClass = true)
@ContextConfiguration(
loader = SpringBootContextLoader.class,
classes = {MyApp.class, IntegrationTestContext.class})
@RunWith(SpringRunner.class)
public class FooIT {
@Autowired
private Client client;
@Autowired
private OtherClient otherClient;
@Test
public void test() {
client.push();
Mockito.verify(otherClient).publishReset(
Mockito.anyString(),
Mockito.argThat(l -> l.size() == 3)
);
}
}
그리고 구성 클래스 :
@Configuration
@MockBeans({
@MockBean(OtherClient.class),
})
public class IntegrationTestContext {
}
은 내가 잘못 뭔가가 있나요? Spring이 mockito와 어떻게 든 방해합니까?