请问 restassured post 返回 HTML,断言失败,如何转成 Json 格式输出?
你们开发的姿势不对,既然有用的只有 json ,为何不直接 contentType 设为 json ,并且直接返回纯 json ?
对于纯 json ,rest assured 可以自动转换,方便用它提供的断言的
我也遇到过这样的接口。你可以把这个 response 用断言把 json 部分截取出来啊
如果改变不了开发,可以用 rest assured 的 filter ,去掉返回值里面的 html 和 body 标签,只保留 json ,这样用例里用到的时候返回值相当于是纯 json 了。
不过极度不推荐这样做。
先看能不能推动开发去改,这神马玩意啊,坑死人
@chenhengjie123 说的很对。用 fiter 就行了。这个问题是研发返回的 header 不对,真实的内容其实就是 json。你用 fiter 强行修改 header 就可以了。
Response Builder 还不行;实现 filter(requestSpec, responseSpec, ctx)不会
试试这个
filters((new Filter() {
@Override
public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
Response response = ctx.next(requestSpec, responseSpec);
String content=new String(response.getBody().asString());
Response Response2 = new ResponseBuilder().clone(response).setContentType(ContentType.JSON).setBody(content).build();
return Response2;
}
})