【发布时间】:2022-06-10 22:10:16
【问题描述】:
我有一个文件是我的应用程序的入口点;
const main = async () => {
// Do stuff
}
main().then();
我知道我可以导出 main 函数,删除第一个文件中的调用并在单独的文件导入中调用该函数;
const entry = require('./rewritten-entry.js');
entry.main().then();
但是为了争论,可以说我真的很想测试第一个文件的main 函数。一旦我在测试中导入文件,主函数就会在我到达测试代码之前执行;
const entry = require('./original-entry.js') // <-- main function executes here
const test = {
// Do test stuff
}
对于测试,我不希望这种情况发生。同样,我不想模拟该函数,因为它正是我想要测试的。
我到处都能看到这种常见的“初始化”逻辑,所以我想有一种方法可以测试它。
【问题讨论】:
-
如果您了解可以对其进行重构以进行测试,为什么不这样做?如您的示例所示,导入文件会运行该函数,此时您所能做的就是断言任何副作用。
标签: javascript node.js testing