Сбой функции Pact Test с исключением, возможно из-за несоответствий - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок в контрактном тестировании Pact.Похоже, что потребительский тест pact не выполняется со следующей ошибкой.

Первоначально он прошел, если я поместил try / catch вокруг вызова API, но когда я удалил его, я получил исключение относительно HtmlMessageConverter, поскольку средство извлечения ответа не смогло извлечь ответ,Я устанавливаю заголовок как (application / json & application / octate-stream).Теперь, после принятия этого заголовка, я получаю следующее исключение пакта.

Что я здесь не так делаю?

Pact Test function failed with an exception, possibly due to Mismatches(mismatches=[PartialMismatch(mismatches=[BodyMismatch(expected=Map(OrderHeaderId -> ORD-001, ExternalOrderId -> 22194528), actual={"OrderHeaderId":"ORD-001","ExternalOrderId":"22194528"}, mismatch=Type mismatch: Expected Map Map(OrderHeaderId -> ORD-001, ExternalOrderId -> 22194528) but received String '{"OrderHeaderId":"ORD-001","ExternalOrderId":"22194528"}', path=$, diff=-{
-    "OrderHeaderId": "ORD-001",
-    "ExternalOrderId": "22194528"
-}
+"{\"OrderHeaderId\":\"ORD-001\",\"ExternalOrderId\":\"22194528\"}")])])





String inputJson =
            "{\n" + "  \"OrderHeaderId\":\"ORD-001\",\n" + "  \"ExternalOrderId\": \"22194528\"\n" + "} ";

    return builder
        .given("order-created")
        .uponReceiving("a request to create order")
        .path(restOrderCreatePath)
        .method("POST")
        .headers(headers)
        .body(inputJson)
        .willRespondWith()
        .status(200)
        .body(jsonBody)
        .toPact();

@Test
  @PactVerification(fragment = "createOrderPactWithRibbon")
  public void verifycreateOrderPactWithRibbon() throws Exception {


      Document document = new Document();
      document.put("OrderHeaderId","ORD-001");
      document.put("ExternalOrderId","22194528");

   // try {
      ResponseEntity<RestApiResponse<Document>> response =
          restApiService.processPostRequest(
                  document, restOrderComponentUrl, restOrderCreatePath);


Assert.assertTrue("No data received in response.", !(response == null));
  /* } catch (Exception ignored) {
        ignored.printStackTrace();
    }*/
  }
...