0

我正在将 Pact-js 与 Jest 一起使用,我试图从提供者端获取返回(真实)API 消耗的响应,代码如下。


describe("Validate pact of identity", () => {


    it("Validate pact of identity creation", () => {
        let opts = {
            providerBaseUrl: baseUrl.BASE_URL,
            changeOrigin: true,
            provider: "Create identity Service",
            logLevel: "DEBUG",
            pactUrls: [
                path.resolve(
                    process.cwd(),
                    `./__tests__/contract/pacts/${requestData.nameConsumerPactFile}-${requestData.nameProviderPactFile}.json`
                ),
            ],
            requestFilter: async (req, res, next) => {
                req.headers["Authorization"] = `Bearer ${await postRequestToken(paths.TOKEN_NON_CDE)}`,
                next()
            },
            consumerVersionTags: ["QA"],
            providerVersionTags: ["QA"],
            publishVerificationResult: false,
            providerVersion: "1.0.0"
        }

        return new Verifier(opts).verifyProvider()
            .then((res) => {
                console.log('pact veryify complete, !!!');
                console.log(res);
            });
    })




})

但是方法Verifier(opts).verifyProvider() res 变量值不返回 API 响应,有什么方法可以在 PACT 进行验证后获取响应?

4

1 回答 1

0

最简洁的答案是不。

协议提供者验证做了一些事情:

  1. 它读取给定的合约/从 Pact Broker 获取它们。这些合同代表了消费者的需求。
  2. 对于合约中的每个交互(通常有很多交互),Pact 承担 API 客户端的角色并发出请求并在响应上断言
  3. 它报告此操作的成功或失败。

所以返回响应没有意义因为可能有很多。

您想对该响应(或响应)做什么?

于 2022-02-25T01:19:22.677 回答