1

私は WireMock を初めて使用し、最初の単体テストをそれで動作させようとしています。さて、wiremock.org のドキュメントに従って、私はこれを書きました

    WireMockConfiguration config = wireMockConfig().port(9089).httpsPort(8443);
    m_wireMockServer    =       new WireMockServer(config);

    m_wireMockServer.start();
    WireMock.configureFor("localhost", 9089);
    givenThat(get(urlEqualTo("/some/thing"))
    .willReturn(aResponse()
        .withHeader("Content-Type", "text/plain")
        .withBody("Hello world!")));

これにより、/some/thing への http リクエストがキャッチされることが期待されます。giventhat 呼び出しで次の例外が発生します。

com.github.tomakehurst.wiremock.client.VerificationException: Expected status 201 for http://localhost:9089/__admin/mappings/new but was 200
at com.github.tomakehurst.wiremock.client.HttpAdminClient.postJsonAssertOkAndReturnBody(HttpAdminClient.java:151)
at com.github.tomakehurst.wiremock.client.HttpAdminClient.addStubMapping(HttpAdminClient.java:65)
at com.github.tomakehurst.wiremock.client.WireMock.register(WireMock.java:130)
at com.github.tomakehurst.wiremock.client.WireMock.register(WireMock.java:126)
at com.github.tomakehurst.wiremock.client.WireMock.givenThat(WireMock.java:65)

私は何を取りこぼしたか?スタブの作成で何が問題になっていますか?

4

1 に答える 1

2

私の推測では、テスト実行の間は常にバックグラウンドで Wiremock が実行されているため、テストで新しいマッピングを設定している場合、既存のマッピングが既に存在し、Wiremock が 200(OK ) 201(Created) の代わりに。

この仮説を検証するには、Wiremock に割り当てられたポートでプロセスを探し、存在する場合は強制終了して、テストを再度実行します。

于 2015-11-10T15:59:07.570 に答える