开玩笑:在单元测试中禁用控制台的更好方法
2022-08-30 01:29:23
我想知道是否有更好的方法可以在特定的Jest测试中禁用控制台错误(即,在每次测试之前/之后恢复原始控制台)。
以下是我目前的方法:
describe("Some description", () => {
let consoleSpy;
beforeEach(() => {
if (typeof consoleSpy === "function") {
consoleSpy.mockRestore();
}
});
test("Some test that should not output errors to jest console", () => {
expect.assertions(2);
consoleSpy = jest.spyOn(console, "error").mockImplementation();
// some function that uses console error
expect(someFunction).toBe("X");
expect(consoleSpy).toHaveBeenCalled();
});
test("Test that has console available", () => {
// shows up during jest watch test, just as intended
console.error("test");
});
});
有没有一种更简洁的方法来完成同样的事情?我想避免spyOn
,但mockRestore
似乎只与它一起工作。
谢谢!