我试图在验证消费者一方的合同时使用场景(又称状态)。这些方案通过使用号码前缀为常规脚本春云合同规定像它在文档中说:春季云合同设置状态
my_contracts_dir\
scenario1\
1_login.groovy
2_showCart.groovy
3_logout.groovy
正如wiremock JSON文件的结果我看到“newScenarioState”字段添加,就像这样:
{
"uuid" : "34a829d1-adf4-41e4-b7d9-6ee66d7de8bc",
"request" : {
"url" : "/foo/demo",
"method" : "GET"
},
"response" : {
"status" : 200,
"body" : "[{\"model\":{\"address\":\"Address\",\"name\":\"String\"}}]",
"headers" : {
"Content-Type" : "application/json"
}
},
"scenarioName" : "Scenario_contracts",
"requiredScenarioState" : "Step2",
"newScenarioState" : "Step3"
}
这个问题我该如何使用书写消费者集成测试时,这个国家?比方说,我希望插入开关显示“Step3”。我如何在消费者集成测试中做到这一点?
附加信息:在消费者集成测试(这是Junit测试)中,我使用StubRunnerRule而不是@AutoConfigureStubRunner。所以我希望通过这个规则我可以使用一些API来为存根设置状态。但我没有找到任何东西。
谢谢,马辛。是的,当我在互联网上观看您的几次谈话时,我已经了解了关于有状态测试的观点。 但是,如果我需要测试生产者在同一请求上返回不同响应时消费者服务如何反应。可以说消费者服务是一个购物车。我想在购物车是空的时候以及其中有一些物品时运行消费者测试。你能为这种情况推荐什么? 非常感谢您的支持。 – Dmitry
没问题!我会分开这些步骤并分别测试请求响应通信。请记住,联系测试不应该重复您的功能。你只想测试你是否可以正确地进行沟通。因此,在将业务逻辑从基础架构逻辑中分离出来之后,我会通过分别检查3个不同的步骤来对前者进行测试,从而对任何http通信和前者进行测试。它有任何意义吗? :) –
您也可以通过正文或标题区分请求。你可以发明如果某人的名字是“欺诈”,那么我们可以假设我们将把这个人改为“欺诈”状态。这就是你可以控制这个过程的方法 –