我想在一个单独的 json 文件中为我的合同指定响应正文,其中一个返回的字段包含一个生成的数据库 ID,每次运行单元测试时它都不同。我的想法是使用正则表达式来确保该字段存在并且该值是一个数字,但我没有找到一种方法,因此生成的合同测试会进行正则表达式匹配。
这是我对 Json 可能是什么样子的想法
{
"id" : "${regex(number())}"
}
定义合同时,有没有办法(语法)在 json 文件中提供正则表达式?
我想在一个单独的 json 文件中为我的合同指定响应正文,其中一个返回的字段包含一个生成的数据库 ID,每次运行单元测试时它都不同。我的想法是使用正则表达式来确保该字段存在并且该值是一个数字,但我没有找到一种方法,因此生成的合同测试会进行正则表达式匹配。
这是我对 Json 可能是什么样子的想法
{
"id" : "${regex(number())}"
}
定义合同时,有没有办法(语法)在 json 文件中提供正则表达式?
不,文件中没有这样的方法。你应该做的是使用stubMatchers
和testMatchers
部分(http://cloud.spring.io/spring-cloud-static/Edgware.RELEASE/multi/multi__contract_dsl.html#_dynamic_properties_in_the_matchers_sections)。然后你像这样定义某事:request { ... stubMatchers { jsonPath('$.id', byRegex(regex(number())) }
.