如何在协定提供商验证中解析响应



我的场景是,消费者定义了两个交互,interation1与state1,interation2与state2。运行interation1后,JSON响应中会有一个id,该id必须用作interation2的查询参数。在提供者端,有没有办法从interation1的响应中提取该id?顺便说一句,我正在使用协定提供商junit。

您的思维方式不对。

提供程序状态旨在防止这种形式的耦合。交互1应该完全独立于交互2。

来自文件:

依赖于以前测试结果的测试很脆弱,会让你回到集成测试地狱,这是你试图通过使用pacts逃离的糟糕地方。

您必须控制提供程序测试上下文,才能进行Pact测试。

在您的情况下,对于状态2,您可能有以下描述:

a user with ID 1 exists

在测试特定交互之前,Pact将为您提供设置该状态的机会,但这应该针对您的用例进行——例如,您的代码可以使用该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 
}

这样,可以在根本不知道交互1存在的情况下执行交互2。

相关内容

  • 没有找到相关文章

最新更新