如何测试Nodejs请求回调监听器?

时间:2018-01-17 08:59:22

标签: javascript unit-testing jestjs

我使用jest进行单元测试。我的代码是

return new Promise((resolve, reject) => {
  let request = http.request(options, resp => {
    resp.setEncoding('utf-8');
    let body = '';
    resp.on('data', chunk => {
      body += chunk
    });
    resp.on('error', error => {
      body += error;
      reject(body, resp);
    });
    resp.on('end', () => {
      this.end(method, resp, url, body, data, opts)
        .then(body => {
          resolve(body, resp);
        })
        .catch(err => {
          reject(err, resp);
        });
    });
  });
  request.end();

我使用jest.fn()的模拟变量,但它需要EventEmitter对象request函数的第二个参数resp。 在调用request函数end后,事件监听器将调用。 我想执行dataerror事件监听器,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

查看官方Mock functions documentation,尤其是mock-implementations part。您还可以在网上找到几个教程,例如Unit Testing Beginners Guide - Part 3 - Mock Http And Files access