【发布时间】:2018-06-06 09:48:03
【问题描述】:
我正在尝试使用 RestAssured 在 json 响应正文中声明一个时间戳字段,作为我的集成测试的一部分。我不确定哪个是执行正则表达式匹配的正确方法
这是 json 响应:
{
"timestamp": "2018-06-05T23:56:09.653+0000",
"status": 200,
"error": "None",
"message": "None"
}
这是我的 RestAssured 响应断言的代码
String pattern = "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}(\\+|\\-)\\d{4}$";
Pattern r = Pattern.compile(pattern);
response.then().assertThat()
.body("timestamp", matchesPattern(pattern)) //<= ERROR HERE
.body("status", equalTo(999))
.body("error", containsString("None"))
.body("message", containsString("None"));
当我编译上述代码时,我在验证时间戳模式时遇到错误
required: java.lang.String,java.lang.CharSequence
found: java.lang.String
reason: actual and formal argument lists differ in length
我不确定 hamcrest 中将支持哪种方法进行正则表达式模式检查。
【问题讨论】:
-
@ScaryWombat,不起作用。我在
matchesPattern(..)中尝试过pattern和r -
看起来我没有添加正确的依赖项。我的 hamcrest 是 1.3,不支持这个
-
@ScaryWombat,我已经回答了我的问题。谢谢你的线索:-)
-
很高兴它对你有用
标签: java regex junit rest-assured hamcrest