我正在尝试测试此类方法:
get () {
try {
return 'value'
} catch (e) {
return 'value2'
}
}
与:
test('the get method retrieves value', () => {
const value = MyClass.get()
expect(value).toBe('value')
})
我的测试覆盖率显示我已经测试了方法的 try
部分,但没有测试 catch
部分。
如何覆盖 catch
部分?
最佳答案
您可以通过将函数调用包装在您的测试AND 中的try catch
block 中来测试catch 部分并期待一个断言。在不期望断言的情况下,不会导致错误的测试运行仍然会通过。
https://jestjs.io/docs/en/tutorial-async#error-handling
test('the fetch fails with an error', async done => {
expect.assertions(1);
try {
await fetchData();
} catch (e) {
expect(e).toMatch('error');
}
});
关于javascript - Jest - 测试 try/catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50643965/