在TestCafe中,我们有RequestHooks和RequestMocks。我希望我的页面为TestCafe进行API调用添加,以将一个数据添加到返回的响应中。
到目前为止,我有:
import { RequestHook, RequestMock } from 'testcafe';
// option 1: RequestHook
class ModifyRequest extends RequestHook {
constructor (requestFilterRules) {
super(requestFilterRules, { includeBody: true });
}
async onRequest (event) {
// ...
}
async onResponse (event) {
const copy = JSON.parse(event.body.toString());
copy.test = 'test';
event.body = Buffer.from(JSON.stringify(copy), 'utf8');
// doesn't actually modify the response
}
}
// option 2: RequestMock
export const modifyRequest = RequestMock()
.onRequestTo(/processing/)
.respond((req, res) => {
console.log(res); // actual response not available
res.setBody({
data: 'original data here'
});
});
我实际上如何进行API调用并将数据添加到响应中?
最佳答案
据我了解,您只想模拟响应的一部分。目前,您无法使用RequestHooks
机制执行此操作。 RequestMock
修改完整响应,RequestHook
不允许您修改响应body
。