问题描述
我有一个放心的测试,我将json转换为java对象并在java对象上声明。在响应对象中,我在测试中声明了一个特定的值。 当我使用POSTMAN手动运行服务时,我总是在响应中看到参数值,但是当我执行自动化测试时,该值并不总是出现在响应对象中。
我怀疑这可能是服务端未发送一致响应而导致的问题,但是当手动命中时,该值始终存在。
测试代码:
@Test
public void validateResponse() {
RequestObject.name= "Hello";
RequestObject.age="20";
ResponseObject responseObject= given()
.contentType(TestData.CONTENT_TYPE_FOR_TEST)
.body(RequestObject)
.then()
.log()
.everything()
.when()
.post(uri)
.as(ResponseObject.class);
assertNotNull(responseObject.name);
assertNotNull(responseObject.year.age);
我认为我的测试很简单,但并不复杂,但是断言间歇性地失败了。
关于如何对此进行更多调试的任何见解?
1楼
您在RequestObject
字段看起来是静态的,我认为JSON对象映射器很可能不会将结果绑定到静态字段。
尝试使它们为非静态。