Jest的回调测试实际上是如何工作的

时间:2017-07-17 16:56:01

标签: reactjs testing asynchronous callback jest

当使用Jest测试使用回调的异步代码时,您可以输入一个done参数,然后在测试中调用。这允许测试知道等到在完成测试之前调用done()函数。例如,在运行包含done()函数的回调之前,此代码不会完成。

test('the data is peanut butter', done => {
  function callback(data) {
    expect(data).toBe('peanut butter');
    done();
  }

  fetchData(callback);
});

我的问题是,Jest如何知道何时需要等待done()调用?作为它存在的唯一其他位置是测试运行的函数的参数,Jest是否有办法检查该函数中的参数是什么?如果是这样,它是如何做到的?

1 个答案:

答案 0 :(得分:3)

一个函数有一个.length属性,它返回为它声明的参数个数:

.:

这就是Jest知道你的测试处理程序需要where ".:The?Title?S01E01*" 回调的方法,它会假设测试是异步的。