【发布时间】:2020-10-28 21:01:07
【问题描述】:
使用 Jest,我想触发 configure 回调参数。如果我用sinon 存根来写这个,我可以做类似configure.yields('my value') 的事情。 Jest有类似的吗?为了帮助说明我所追求的,我创建了一个简单的示例。
我已导入 mymodule,实例化并调用 configure 函数。我希望我的测试触发这个回调。即(err, results) => ...
import MyModule from 'mymodule';
export function execute(key, value) {
return new Promise((resolve, reject) => {
new MyModule().configure(key, value, (err, result) => {
// I need my test to trigger this section of code...
return resolve('my resolved value')
})
})
}
此测试模拟MyModule 并将configure 设置为jest.fn()。虽然我已经模拟了所有内容,但我无法指定 configure 参数并触发特定参数。理想情况下,我想做类似mockFn.yields('my value') 的操作来触发configure 回调。
import MyModule from 'mymodule';
jest.mock('mymodule');
describe('Test Example', () => {
test('should trigger mocked args callback', async () => {
const mockFn = jest.fn();
const key = 'my_key';
const value = 'my_value';
const actual = require('./src/my-service');
MyModule.mockImplementation(() => {
return {
configure: mockFn
};
});
await actual.execute(key, value)
// how can I trigger the mocked configure argument callback?
});
});
测试当前失败,因为它无法触发回调函数。错误状态:
Async callback was not invoked
【问题讨论】:
标签: javascript jestjs