当前位置: 首页 > 知识库问答 >
问题:

契约体匹配-匹配节点数

孟韬
2023-03-14

由于我是一个新手,并不知道如何匹配这样的东西,我希望有人能帮助我。提前道谢。

编辑1:

我使用了一个节点匹配器,它是我的一个同事创建的,如下所示:

return builder.given("given").uponReceiving("description").path(SERVICEPATH)
                .query(query).method(METHOD_GET).headers(ACCEPT, REQ_ACCEPT).willRespondWith().status(200)
                .matchHeader(HEADER_CONTENT_TYPE, RESP_HEADER_CONTENT_TYPE_REGEX).body(responseBody)
                .matchBody(new PactDslXmlNodeMatcher().node("entry").node("content").value(".*")).toPact();

现在我有了一个非常酷的PactDslWithProvider,如下所示:

    return builder.given("Genereller Test").uponReceiving("Feed soll Eintraege enthalten").path(SERVICEPATH)
            .query(query).method(METHOD_GET).headers(ACCEPT, REQ_ACCEPT).willRespondWith().status(200)
            .matchHeader(HEADER_CONTENT_TYPE, RESP_HEADER_CONTENT_TYPE_REGEX)
            .body(responseBody)
            .matchBody(new PactDslXmlNodeMatcher().node("feed").minMaxType(minNumberNodesInFeed, maxNumberNodesInFeed))
            .toPact();

方法“minmaxType”将一个MinMaxTypeMatcher添加到带有节点路径的body-category中。的实际行为:它匹配$.feed的最内部节点的type、min和max。例如:$.feed.0.title$.feed.1.link、...、$.feed.6.entry.0.title

但我实际想要的是验证$.feed是否有一个最小和最大的子节点数。我怎样才能做到呢?

共有1个答案

郭浩穰
2023-03-14

这听起来像是在尝试使用Pact来做一个功能测试,而不是契约测试。一般来说,您不应该编写关心数组中有多少项的测试。有一个阅读这两个链接,让我知道你如何去。

  • https://docs.pact.io/best-practices/consumer#use-pact-for-contract-testing-not-functional-testing-of-provider
  • https://docs.pact.io/best-practices/consumer/contract-tests-vs-functional-tests

另外,如果你还没有加入我们的slack.pact.io。

 类似资料:
  • 使用方法创建新资源时,将新资源的位置添加到响应中,作为标头。 如何创建一个spring云契约YML来验证响应是否包含头,并将有效的作为其值? 我试过下面的YAML,但它不工作。 生成测试代码 生成的代码不包含任何头验证。

  • 我有一个切入点,我试图用LTW。我有两个方法,我试图建议,每一个与不同的参数列表。但是,它们都有一个我想要的共同参数。 以下是我想建议的方法签名: 我本来希望参数与execution()方法相关联,但有时会出现“混淆”,给我的是IP而不是用户名。 是我不正确地使用了AspectJ,还是这是LTW中的一个bug?我运行的是AspectJ 1.6.13

  • 我正在使用以下查询对象执行多匹配搜索: 我希望结果按高亮匹配的数量排序。例如,第一张唱片有5张。 elasticsearch.config.ts 示例数据

  • 我和ElasticSearch一起工作。当我执行此查询时: 我得到了我想要的(所有的结果,其中有参考黑莓,但不是Q10)。 但是,我想限制搜索的字段只限于“title”字段。例如,_source文档有标题、正文、标签等,我只想搜索标题。ElasticSearch“匹配”似乎很适合我... 虽然这只成功地搜索了标题,但它仍然返回标题中带有Q10的结果,这与上面的搜索不同。 我正在看比赛文档,但似乎不

  • 尝试使用FTL模板进行转换时出现异常!freemarker.core.nonNumericalException:对于“-”左手操作数:需要一个数字,但它的计算结果是序列+散列(包装器:f.e.dom.nodelistmodel):==>item.target[在模板“marketing/widgets/freemarker/newblogpost-update.ftl”中,第31行,第105列]

  • 我正在使用Java生成作为消费者的契约。下面是我希望提供程序验证的响应体的一个示例