我写了一份合同,插件自动生成了测试。我看到这些自动生成的测试有一个非常奇怪的行为。
以下是我的服务端点:
@RequestMapping(value="/check/{id}" method= RequestMethod.GET, produces = Media.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Application>> getApplications(
@PathVariable (value = "id") String id){
return appService.findAll(id);
}
这是合同:
Contract.make {
request {
method GET()
url '/check/1234567'
}
response {
status 200
body("""
{
.........
}
""")
headers {
contentType(applicationJson())
}
}
}
当我运行“mvn clean install”时,测试会自动生成并运行。这适用于上述合同并且测试完美通过。
但是,如果我将路径中的数据更改为“/check/12345678”,它就会开始失败。
我无法理解的是我的端点正在采用字符串类型的 id path 变量。对于这种类型的路径,任何值都应该是好的。但是,以下路径有效:
url '/check/1234567'
url '/check/12'
url '/check/12347'
以下不起作用:
url '/check/12345678' //added just one more digit
url '/check/aa4567' //prepended characters
url '/check/123aa' //appended characters
如果我能得到关于这种行为的解释,或者如何解决它,那就太好了。几乎任何字符串都可以工作。例如"/check/234df-dfs-fs234fds-sdf-fssd3rr"