我有一个放心的测试,我将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);
我认为我的测试很简单并不复杂,但断言间歇性失败。
有关如何在此进行更多调试的任何见解?
答案 0 :(得分:1)
RequestObject
中的字段看起来是静态的,我认为JSON对象映射器很可能不会将结果绑定到静态字段。尝试使它们非静态。