java - 忽略要映射的字段以响应合同测试中控制器的响应
问题描述
由于我只对检查合同测试响应中的一些值感兴趣,因此我想省略那些对我不重要的字段。问题是当我运行测试时,生成的测试文件会检查test.groovy文件中定义的主体是否与从控制器生成的相同。所以,我的问题是,是否有一种方法可以断言我感兴趣的那些价值观。
test.groovy
Contract.make {
request {
method 'GET'
urlPath('/api/node') {
queryParameters {
parameter('number', '123')
parameter('size', '1')
parameter('status', 'ACTIVE')
}
}
headers {
header("key", "someKey")
}
}
response {
status 200
headers {
contentType applicationJson()
}
body("""
"content":[
{
"id": "123456",
"status":"ACTIVE",
"details":[
{
"object":{
"id":"ccId",
"codeOne":"1",
"codeTwo":"2",
"codeThree":"3",
"_links":{
"self":{
"href":"https://url.com"
},
"style":{
"href":"https://universal-url.com"
},
"universalStyle":{
"href":"https://universal-style-v1-url.com"
}
}
}
"code":null
}
]
这是我得到的错误
org.junit.ComparisonFailure: expected:<"[content]"> but was:
<"[{"links":[
{"rel":"first","href":"http://localhost/api/node?number=123&status=ACTIVE&page=0&size=1"},
{"rel":"prev","href":"http://localhost/api/node?number=123&status=ACTIVE&page=0&size=1"},
{"rel":"self","href":"http://localhost/api/node?number=123&size=1&status=ACTIVE"},
{"rel":"last","href":"http://localhost/api/node?number=123&status=ACTIVE&page=1&size=1"}],
"content":[{"id":"123456",...
在这种情况下,我不想验证任何与“链接”数组相关的内容。我可以使用任何配置来绕过它吗?
解决方案
只是不要把它们放在响应中,它们就不会被生成。
推荐阅读
- javascript - 如何从 html 获取坐标以在 Leaflet 地图上标记?
- reactjs - 在 React Native 中以形式将循环结构转换为 JSON
- java - 如何在 Parse 中创建新用户,而不更改当前用户?
- selenium - 可以使用带有嵌入式 jxbrowser 的 cypress 进行 e2e 吗?
- php - 我无法在我的 wordpress 网站的插件中加载我的自定义样式
- react-native - react-native:使用条件渲染时的内存
- git - 如何将`branch-2`的基本分支从`branch-1`(已合并到`development`)更改为`development`
- file-upload - 如何在 Clojure 中预览文件上传的图像和文件名?
- ios - Swift - 使用 tableView.dequeueReusableCell 时数据未正确显示
- javascript - 需要了解表格结构才能抓取网页