我目前正在尝试编写集成测试,以确保不会因脚本的进一步更改而破坏某些引起问题的特定客户案例。我不确定如何正确设置测试的格式,以使其运行并等待函数完成后再返回:
系统在被模拟时会调用适当的函数。
// app.ts
function doThing() {
const data = window.data;
if (!isEmpty(data)) {
firstAsync(value1 => {
return secondAsync(value1);
}).then(value2 => {
someCall();
}).catch(error => {
log(error);
});
} else {
someOtherCall();
}
}
// app.test.ts
someCall = jest.fn();
someOtherCall = jest.fn();
describe('test', () => {
it('should work', () => {
window.data = { value: 'something' };
doThing();
expect(someCall).toHaveBeenCalled();
expect(someOtherCall).not.toHaveBeenCalled();
});
});
TL:DR-我将如何编写测试以覆盖其中包含promise但本身不是promise的函数?