如何在Node.js中需要文件时阻止脚本函数运行

时间:2016-11-08 21:34:56

标签: javascript node.js require

我有一个通过调用node filename运行的脚本。我试图在这个文件中单元测试一个特定的功能。问题是,当我需要像app = require('../app')这样的文件时,它运行整个脚本,我只想访问导出的函数。有没有办法阻止脚本函数在导入文件时运行?

2 个答案:

答案 0 :(得分:0)

“我可以阻止脚本运行”以进行单元测试的问题的答案基本上是 no 。但是,您可能会发现许多有用的选项。第一种方法是通过取出在require上运行的操作来使您的节点模块更加模块化。我的建议是改变它,以便它需要一个论点:

    node filename run

当存在'run'参数时,常规操作会触发。这将允许您在文件中要求,该文件始终运行脚本,但如果没有“运行”,它将不会执行您不想要的操作。您甚至可以使用“测试”选项在测试模式下运行它。我认为第二个选项不太有用,就是将要测试的函数移动到自己的文件中,并将所需的函数放入主要部分。然后,您可以单独进行测试。

答案 1 :(得分:-1)

您基本上想要的是部分执行您需要的模块。

所以答案是否定的,除非你修补了这个模块的代码。