我有一个通过调用node filename
运行的脚本。我试图在这个文件中单元测试一个特定的功能。问题是,当我需要像app = require('../app')
这样的文件时,它运行整个脚本,我只想访问导出的函数。有没有办法阻止脚本函数在导入文件时运行?
答案 0 :(得分:0)
“我可以阻止脚本运行”以进行单元测试的问题的答案基本上是 no 。但是,您可能会发现许多有用的选项。第一种方法是通过取出在require上运行的操作来使您的节点模块更加模块化。我的建议是改变它,以便它需要一个论点:
node filename run
当存在'run'参数时,常规操作会触发。这将允许您在文件中要求,该文件始终运行脚本,但如果没有“运行”,它将不会执行您不想要的操作。您甚至可以使用“测试”选项在测试模式下运行它。我认为第二个选项不太有用,就是将要测试的函数移动到自己的文件中,并将所需的函数放入主要部分。然后,您可以单独进行测试。
答案 1 :(得分:-1)
您基本上想要的是部分执行您需要的模块。
所以答案是否定的,除非你修补了这个模块的代码。