有没有一种方法来测试像这样用玩笑:异步测试用玩笑(不承诺)
function hello(callback) {
someNonPromiseBasedAPI(callback);
}
喜欢的东西done()
在茉莉花
的玩笑文档指出,测试异步/ waitsFor()
函数它必须返回一个Promise,但我不想修改我的代码以适应测试。
有没有一种方法来测试像这样用玩笑:异步测试用玩笑(不承诺)
function hello(callback) {
someNonPromiseBasedAPI(callback);
}
喜欢的东西done()
在茉莉花
的玩笑文档指出,测试异步/ waitsFor()
函数它必须返回一个Promise,但我不想修改我的代码以适应测试。
只是模拟出someNonPromiseBasedAPI
jest.mock('./path/to/someNonPromiseBasedAPI', (cb)=> cb('test'))
const cb = jest.fn()
const result = hello(cb)
expect(cb).toHaveBeenCalledWith('test')
这种取代的someNonPromiseBasedAPI
与功能的实现,只需要调用回调函数与'test'
。在你的测试中,你创建一个间谍将它传递给hello
函数。该模拟被使用并呼叫'test'
的间谍。然后,只要测试一下间谍是否被称为预期的论点。
Jest使用引擎盖下的茉莉花,因此您可以自由使用done
/done.fail
回调,例如,
it('says hello', done => {
hello((err, result) => {
if (err) return done.fail(err);
expect(result).toBe('hello');
done();
});
});