如何在pact provider verfication解析响应

pjngdqdw  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(390)

我的场景是消费者定义了两个交互,interation1与state1,interation2与state2。在运行interation1之后,json响应中将有一个id,这个id必须用作interation2的查询参数。在提供者端,是否有方法从interation1的响应中提取该id?顺便说一句,我正在使用契约提供者junit。

mnemlml8

mnemlml81#

你在用错误的方式思考事情。
提供者状态旨在防止这种形式的耦合。交互作用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。

相关问题