使用 Regex 断言 RestAssured 响应主体
Assert RestAssured response body with Regex
我正在尝试使用 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 中支持哪种方法进行正则表达式模式检查。
这里的问题是我的项目中没有正确的依赖项。 org.hamcrest.core
没有 matchesPattern
的方法。添加以下依赖项后,以下导入有效
<!-- https://mvnrepository.com/artifact/org.hamcrest/java-hamcrest -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>java-hamcrest</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
您需要导入以下代码
import static org.hamcrest.text.MatchesPattern.matchesPattern;
我正在尝试使用 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 中支持哪种方法进行正则表达式模式检查。
这里的问题是我的项目中没有正确的依赖项。 org.hamcrest.core
没有 matchesPattern
的方法。添加以下依赖项后,以下导入有效
<!-- https://mvnrepository.com/artifact/org.hamcrest/java-hamcrest -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>java-hamcrest</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
您需要导入以下代码
import static org.hamcrest.text.MatchesPattern.matchesPattern;