我的脚本中具有以下验证:
.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo("1514844812000"))
我遇到了以下令人困惑的失败:
java.lang.AssertionError: 1 expectation failed.
JSON path entity.segments[0].segmentEnds[0].publicNoticeDate doesn't match.
Expected: 1514844812000
Actual: 1514844812000
我认为您可以立即看到我的无奈。如果我删除引号:
.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo(1514844812000))
然后Eclipse告诉我该值超出整数范围。
我尝试用 is()替换带 is()的 equalTo(),但效果不理想。
答案 0 :(得分:0)
这是一个合理的解释。
我猜测entity.segments[0].segmentEnds[0].publicNoticeDate
返回一个数字(也许是Long
)。所以当你做
.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo("1514844812000"))
您正在将Long
与字符串进行比较。通过调用“ equals()”方法进行相等性检查,由于它们不相等,因此测试失败。但是该错误消息使您感到困惑,因为没有独特的方法可以表明您期望使用字符串"1514844812000"
,但是又获得了Long
值1514844812000
。
要解决此问题,请尝试更改
.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo(1514844812000)
至
.body("entity.segments[0].segmentEnds[0].publicNoticeDate",equalTo(1514844812000L))
请注意,我如何在数字末尾添加“ L”以表示这是一个长整数。