【发布时间】:2017-12-07 00:47:51
【问题描述】:
我有一个异步运行的函数,控制台在随机 setTimeout 之后按顺序记录数字 1 到 5。我想用 Jest 为这个函数写一个测试。如何编写一个测试 console.log 是 1、2、3、4、5 的测试?
【问题讨论】:
标签: testing asynchronous logging jestjs
我有一个异步运行的函数,控制台在随机 setTimeout 之后按顺序记录数字 1 到 5。我想用 Jest 为这个函数写一个测试。如何编写一个测试 console.log 是 1、2、3、4、5 的测试?
【问题讨论】:
标签: testing asynchronous logging jestjs
是的,您可以使用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");
});
【讨论】:
console.log,而不是标准输出中的实际内容,不幸的是,它不一样。