在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

09-04 18:50