我前一段时间开始体验协定,我想知道你们中的任何人是否知道协定是否支持Json模式!
我将描述流程。假设您有两个微服务:
该提供程序公开一个Api-本质上是一个POST请求,并且期望显式的json主体有效负载(需要某些字段)。 假设:
{
"id": "123",
"name": "Bob"
}
id和name均为必需属性。
现在假设提供程序已更改其行为,以期望具有相同的json有效负载,但具有附加属性:
{
"id": "123",
"name": "Bob"
"extraProperty": "newProperty"
}
我的问题是,是否有使用pact框架检测这种违约的条件?如果不是,那么认为什么是测试这种情况的最佳方法。
感谢您的帮助。
答案 0 :(得分:0)
我的问题是,是否有使用pact框架检测这种违约的条件?
当然-这就是Pact的目的!
如果 const fixedQuery = this.props.location.search.replace(/['"]+/g, "");
console.log(fixedQuery );
const userQuery = querystring.parse(fixedQuery );
console.log(JSON.stringify(userQuery));
console.log(JSON.stringify(userQuery.q));
是一个新的必填字段(除了extraProperty
和id
之外),则当提供者测试针对的是由消费者产生的,不与消费者产生的合同时如果知道新字段,那么您的API将无法按预期运行,并且协议测试将失败。
关于您的其他问题:
我想知道你们中的任何人是否知道协议是否支持Json模式!
我不确定您的意思-我们当然支持JSON格式。如果您的意思是JSON Schema,那么可以,但是您仍然需要编写测试(请参见https://docs.pact.io/faq#why-doesnt-pact-use-json-schema)。