- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Pact-js 和 POST 主体方面遇到了一个奇怪的问题。
背景:
消费端
- 我有一个 NodeJs 应用程序,我正在尝试测试
- 我配置了 Pact 并设置了适当的框架
- 全部测试成功并生成合约
提供商方:
- 同样,我有一个 NodeJs 应用程序,我正在尝试测试
- 协议(protocol)已经建立,框架已经到位
- 当我运行测试时,所有 GET 请求都成功运行,但所有 POST 都报告失败。
问题:
- 当我回显从 Pact (veryifyProvider) 传递到服务的 POST 主体时,我可以看到它将主体 (JSON) 包装在另一个“键:值”配对中,其中我要解析的主体是键和该值为空。它还为 Body 内的所有双引号添加了转义字符 (\)。例如:
{"{\"账户\":\"123\",\"轨道\":\"5.00\",\"日期\":\"2016-06-22\",\"客户\":\"1234\",\" Spring \":\"1234\"}":""}
当我查看 Pact 合约 json 时,一切看起来都是正确的。在VerifyProvider读取JSON并将其传递到REST端点之间的某个地方,主体被破坏了。这只是在测试期间发生的接缝,正常调用可以正常工作。
这是我使用提供者端执行验证的代码:
const verifier = require('pact').Verifier;
const path = require('path');
let contract = path.join(__dirname, 'pactContract.json');
let opts = {
providerBaseUrl: "http://localhost:3001",
pactUrls: [contract],
};
verifier.verifyProvider(opts)
.then((res) => {
console.log('pact veryify complete, !!!');
console.log(res);
process.exit(0);
}).catch((error) => {
console.log(error);
process.exit(1);
});
我无法获取确切的消费者代码库,但其结构几乎与此处所示的 Pact-js 相同。 .
非常感谢任何帮助!
最佳答案
请检查Content-Type
header 并确保其为application/json
。如果服务认为它匹配短信,就会发生这种情况。
关于node.js - Pact-js : POST body is garbled by VerifyProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639338/
我在 Pact-js 和 POST 主体方面遇到了一个奇怪的问题。 背景: 消费端 - 我有一个 NodeJs 应用程序,我正在尝试测试 - 我配置了 Pact 并设置了适当的框架 - 全部测试成功并
我是一名优秀的程序员,十分优秀!