Java PACT:如何匹配PACT jvm DSL中的特定日期时间格式?

Java PACT:如何匹配PACT jvm DSL中的特定日期时间格式?,java,pact,Java,Pact,将pact jvm DSL与spring boot(.timestamp(名称、格式、示例)一起使用,我可以同时指定: .timestamp("start", "dd-MM-yyyyy'T'HH:mm:ss'Z'", Instant.parse("2020-10-06T20:48:58.402Z")) 及 甚至 .timestamp("start", "dd-MM-yyyyyyy'T'HH:mm:ss'Z

将pact jvm DSL与spring boot(.timestamp(名称、格式、示例)一起使用,我可以同时指定:

.timestamp("start", "dd-MM-yyyyy'T'HH:mm:ss'Z'", Instant.parse("2020-10-06T20:48:58.402Z"))

甚至

.timestamp("start", "dd-MM-yyyyyyy'T'HH:mm:ss'Z'", Instant.parse("2020-10-06T20:48:58.402Z"))
而且测试还是通过了

如果您发送的是日期dd-MM-yyyyy而不是yyy-MM-dd,则我的真正提供商服务错误,但我无法理解当消费者端的测试错误地向提供商API发送错误格式的JSON时间戳时,您应该如何让测试失败

也就是看起来像这样的钻头:

    @Test
    @PactTestFor(pactMethod = "postTheThing")
    public void pactWithProvider() {
      client.makeApiCall(testPayload);
    }

消费者测试只有在添加一些验证时才会失败。假设契约在消费者端转换为存根,仅此而已


只需在您的消费者测试中添加一些
mockition#verify
验证即可。

我认为测试用例会通过,因为pact框架不会验证数据,但与预期的pact文件相比,响应中只有json元素。例如,字段start更改为startDate,但pact文件中的预期字段为'st'然后你的测试用例失败了。
    @Test
    @PactTestFor(pactMethod = "postTheThing")
    public void pactWithProvider() {
      client.makeApiCall(testPayload);
    }