Jestjs 带Jest的异步测试(无承诺)

Jestjs 带Jest的异步测试(无承诺),jestjs,Jestjs,有没有一种方法可以用玩笑来测试这样的东西: 函数hello(回调){ someNonPromiseBasedAPI(回调); } 类似于Jasmine中的done()/waitsFor() Jest文档指出,要测试异步函数,它必须返回一个承诺,但我不想修改我的代码以适应测试。只需模拟someNonPromiseBasedAPI jest.mock('./path/to/someNonPromiseBasedAPI',(cb)=>cb('test')) const cb=jest.fn() 常量

有没有一种方法可以用玩笑来测试这样的东西:

函数hello(回调){
someNonPromiseBasedAPI(回调);
}
类似于Jasmine中的
done()
/
waitsFor()


Jest文档指出,要测试异步函数,它必须返回一个承诺,但我不想修改我的代码以适应测试。

只需模拟
someNonPromiseBasedAPI

jest.mock('./path/to/someNonPromiseBasedAPI',(cb)=>cb('test'))
const cb=jest.fn()
常量结果=你好(cb)
期望(cb).已通过('test')调用

这将使用只调用带有
'test'
的回调函数的函数替换
someNonPromiseBasedAPI
的实现。在测试中,您创建了一个spy,并将其传递到
hello
函数中。使用mock并使用
调用spy“test”
。然后只需测试spy是否被预期参数调用。

只需模拟
一些非PromiseBaseDapi

jest.mock('./path/to/someNonPromiseBasedAPI',(cb)=>cb('test'))
const cb=jest.fn()
常量结果=你好(cb)
期望(cb).已通过('test')调用

这将使用只调用带有
'test'
的回调函数的函数替换
someNonPromiseBasedAPI
的实现。在测试中,您创建了一个spy,并将其传递到
hello
函数中。使用mock并使用
调用spy“test”
。然后只需测试间谍是否被调用了预期参数。

Jest在引擎盖下使用jasmine,因此您可以自由使用回调,例如

it('says hello',done=>{
你好((错误,结果)=>{
如果(错误)返回完成。失败(错误);
期望(结果)。托比(“你好”);
完成();
});
});

Jest在引擎盖下使用jasmine,因此您可以自由使用回调,例如

it('says hello',done=>{
你好((错误,结果)=>{
如果(错误)返回完成。失败(错误);
期望(结果)。托比(“你好”);
完成();
});
});