yanom blog

様々な技術について書きます

MockServerClientでAPIサーバをモックする

自分用メモです。
javaでhttpをテストする時、以下のようにモックを使います。

//import
import org.mockserver.client.server.MockServerClient;
import org.mockserver.junit.MockServerRule;
import org.mockserver.model.Header;
import org.mockserver.model.HttpRequest;
import org.mockserver.model.HttpResponse;  

//こんな感じでJunitのルールを書いて
@Rule
  public MockServerRule mockServerRule = new MockServerRule(this, 1080);
  private MockServerClient mockServerClient;

//こんな感じでMockServerの設定をします。
  mockServerClient.when(HttpRequest.request().withMethod("GET").withPath("/foo"))
      .respond(HttpResponse.response().withStatusCode(500)
          .withHeader(new Header("Content-Type", "application/json; charset=utf-8")).withBody("{\"bar\":\"buzz\"}"));

// http開始
  actual = httpGet("http://localhost:1080/foo", null);

起動までに時間がかかるのが玉に瑕