JEST 测试用例应该因 try-catch 而失败
JEST testcase should failed with try-catch
我想知道为什么我的下面的测试用例在使用 try-catch 块后通过了,虽然它应该会失败:
test("test", () => {
try {
expect(true).toBe(false);
} catch (err) {
console.log(err);
}
});
虽然没有 try-catch 它失败了:
test("test", () => {
expect(true).toBe(false);
});
只有在抛出错误时测试才会失败。
断言 expect(true).toBe(false);
将抛出一个错误,Jest 将捕获该错误并将测试记录为失败。
但是,使用 try-catch 块将捕获错误并允许您按需要处理它。
在你的例子中,你只是在控制台记录它,所以 Jest 不再有错误来捕获...所以测试通过了。
如果您要在 catch
块中重新抛出错误,那么 Jest 将捕获它并使测试失败:
test("test", () => {
try {
expect(true).toBe(false);
} catch (err) {
console.log(err);
throw err; // <— Re-throw error
}
});
希望对您有所帮助。
我想知道为什么我的下面的测试用例在使用 try-catch 块后通过了,虽然它应该会失败:
test("test", () => {
try {
expect(true).toBe(false);
} catch (err) {
console.log(err);
}
});
虽然没有 try-catch 它失败了:
test("test", () => {
expect(true).toBe(false);
});
只有在抛出错误时测试才会失败。
断言 expect(true).toBe(false);
将抛出一个错误,Jest 将捕获该错误并将测试记录为失败。
但是,使用 try-catch 块将捕获错误并允许您按需要处理它。
在你的例子中,你只是在控制台记录它,所以 Jest 不再有错误来捕获...所以测试通过了。
如果您要在 catch
块中重新抛出错误,那么 Jest 将捕获它并使测试失败:
test("test", () => {
try {
expect(true).toBe(false);
} catch (err) {
console.log(err);
throw err; // <— Re-throw error
}
});
希望对您有所帮助。