Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 测试Cafe-如何修改或将数据注入响应?_Javascript_Xmlhttprequest_Hook_E2e Testing_Testcafe - Fatal编程技术网

Javascript 测试Cafe-如何修改或将数据注入响应?

Javascript 测试Cafe-如何修改或将数据注入响应?,javascript,xmlhttprequest,hook,e2e-testing,testcafe,Javascript,Xmlhttprequest,Hook,E2e Testing,Testcafe,在TestCafe中,我们有RequestHook和RequestMock。我希望我的页面为TestCafe进行API调用add,以向返回的响应添加一段数据 到目前为止,我所拥有的: 从“testcafe”导入{RequestHook,RequestMock}; //选项1:请求钩子 类ModifyRequest扩展了RequestHook{ 构造函数(requestFilterRules){ super(requestFilterRules,{includeBody:true}); } 异步o

在TestCafe中,我们有RequestHook和RequestMock。我希望我的页面为TestCafe进行API调用add,以向返回的响应添加一段数据

到目前为止,我所拥有的:

从“testcafe”导入{RequestHook,RequestMock};
//选项1:请求钩子
类ModifyRequest扩展了RequestHook{
构造函数(requestFilterRules){
super(requestFilterRules,{includeBody:true});
}
异步onRequest(事件){
// ...
}
异步onResponse(事件){
const copy=JSON.parse(event.body.toString());
copy.test='test';
event.body=Buffer.from(JSON.stringify(copy),'utf8');
//实际上并没有修改响应
}
}
//选项2:请求模拟
export const modifyRequest=RequestMock()
.onRequestTo(/processing/)
.响应((请求、回复)=>{
console.log(res);//实际响应不可用
res.setBody({
数据:'此处的原始数据'
});
});

我实际上如何进行API调用并向响应中添加数据

您需要将RequestMock作为钩子添加到夹具中:

fixture`<fixture-name>`
  .page(<url>)
  .requestHooks(modifyRequest);
夹具``
.第页()
.requestHooks(修改请求);

这里的完整示例:

据我所知,您只想模拟响应的一部分。此时,您无法使用
RequestHooks
机制来执行此操作
RequestMock
修改完整响应,
RequestHook
不允许您修改响应
正文

谢谢,我熟悉如何附加请求挂钩,但我想知道如何发出实际请求,然后在将响应发送到客户端之前修改响应。谢谢,我想在RequestMock内部,我可以使用axios打电话,但如果可以避免的话,我真的不想这样做。如果能看到这个选项,我会很高兴