如何解决如何在协议提供者验证时解析响应
我的场景是消费者定义了两个交互,interation1 与 state1,interation2 与 state2。运行interation1后,JSON响应中会有一个id,这个id必须作为interation2的查询参数。在提供者方面,有没有办法从 interation1 的响应中提取该 ID?顺便说一下,我正在使用契约提供者 junit。
解决方法
你以错误的方式思考问题。
Provider states 旨在防止这种形式的耦合。交互 1 应该完全独立于交互 2。
依赖于先前测试结果的测试是脆弱的,并且会让你回到集成测试地狱,这是你试图通过使用协议来逃避的讨厌的地方。
您必须能够控制提供程序测试上下文才能进行 Pact 测试。
在您的情况下,对于状态 2,您可能有以下描述:
a user with ID 1 exists
在测试该特定交互之前,Pact 将 provide you 有机会设置该状态,但是这应该针对您的用例进行 - 例如您的代码可以使用该 ID 在数据库(或内存中的)中创建资源。
@State("a user with ID 1 exists") // Must match the state description in the pact file
public void setupUser1() {
// Do what you need to for that user to exist
}
这样,交互 2 可能会在根本不知道交互 1 存在的情况下执行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。