如何使用Jest或其他Javascript测试框架测试console.log输出?

时间:2017-07-03 17:04:59

标签: testing asynchronous logging jestjs

我有一个异步运行的函数,控制台在随机setTimeout之后按顺序记录数字1到5。我想用Jest为这个函数编写一个测试。如何编写一个测试console.log为1,2,3,4,5?

的程序

1 个答案:

答案 0 :(得分:15)

是的,您可以使用jest.fn

以下是一个例子:

档案hello.js

console.log("Hello World");

档案hello.test.js

let outputData = "";
storeLog = inputs => (outputData += inputs);
test("console log Hello World", () => {
  console["log"] = jest.fn(storeLog);
  require("./hello.js");
  expect(outputData).toBe("Hello World");
});