我正试着理解春云合约,所以我正在看巡回演出。
我的问题是关于这一节的。
查看请求主体部分,Groovy和YAML契约之间有一个区别。
在Groovy中:
"client.id":$(regex('0-9{10}'))
在YAML中:
"client.id":1234567890
你可以看到不同之处--一个是具体的,另一个不是。
问题如下:
Q1。这种差异是故意的吗?
Q2。这些被转化为生产者端的测试,从而与我真正的服务实现相冲突,这是正确的吗?
那么,这是否意味着我的真正实现需要支持1234567890的硬编码client.id?
提亚
发布于 2019-06-06 08:40:08
区别在于,在Groovy中,我们可以编写某些代码,而YAML只是声明性的。在Groovy中,在body中,我们可以声明身体中某个特定部分的值是动态的。然后,在运行时,我们将生成固定值(例如,为生成的测试)。您还可以通过bodyMatchers
部分实现同样的目标。
但是,在Yaml中,您不能编码。您需要提供一个固定的值,如果您想拥有该特定元素的动态部分,例如body元素,那么您必须在matcher部分中提供该值。这将告诉框架,例如生成的测试有一个固定的值,但也有一个动态部分需要考虑,例如存根。
https://stackoverflow.com/questions/56473587
复制相似问题