ApplicationReadyEvent
で発生したHTTP呼び出しをWiremockで傍受しようとしています。問題は、この呼び出しがWiremockルールが適用される前に行われていることです。したがって、このAPIは嘲笑されません。ApplicationReadyEventでトリガーされたHTTP呼び出しを模擬する方法
はスタブがサーブレットコンテナの準備ができたら、実際にトリガされる@Before
相、で構成されている次の例
public class OnApplicationReadyListener implements ApplicationListener<ApplicationReadyEvent>{
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
// in this pathe is being send a request
consulHealthCheckService.register();
}
}
を参照してください。だから、実際に - HTTP呼び出しの後は
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = ConsulApplication.class)
public class ConsulApplicationTest {
@Rule
public WireMockRule wireMockRule = new WireMockRule(Agent.DEFAULT_PORT);
@Before
public void setup(){
// is being executed after the http call was fired
stubFor(get(anyUrl()).willReturn(aResponse().withStatus(HttpStatus.OK.value())));
stubFor(put(urlEqualTo("/agent/service/register"))
.willReturn(aResponse()
.withStatus(HttpStatus.OK.value())
.withHeader("Content-Type", APPLICATION_JSON_VALUE)
));
}
@Test
public void shouldRegisterServiceOnApplicationStartup(){
verify(putRequestedFor(urlEqualTo("/agent/service/register")));
}
}
を解雇された特定のHTTP呼び出しをスタブにどのように方法はありますか?注意:私は実際に呼び出しをトリガするサービスコードを模擬することができません。