如何通过mocha测试运行时参数?

时间:2014-06-15 03:09:55

标签: node.js testing command-line-arguments mocha

我正在使用mocha来测试我在node.js中编写的一些代码。

我的一个程序旨在从命令行运行运行时参数。由于其中一些选项是目录,因此代码验证选项并确定目录是否存在,包括可选的基本目录。

这是我想用mocha测试的东西,但代码不是为了导入而设计的,因为它的设计是从命令行运行。

所以我的问题是,如何通过mocha测试程序的命令行参数?

我已经尝试使用谷歌搜索了,但是我不断收到有关mocha的文章,其中提到了mocha的命令行,而不是如何测试node.js代码的命令行。

1 个答案:

答案 0 :(得分:2)

我会使用以下步骤将您的代码更改为测试友好:

  • 将命令行参数解析和处理放入一个函数中,该函数将字符串数组作为参数并返回已解析的配置对象。在测试中,您可以合成命令行参数来练习代码。在制作中,您只需发送process.argv
  • 将目录验证内容放在可以使用普通mocha机制轻松测试的单独函数中,使用在/tmp下创建的文件,用于您想要真正执行的任何文件系统I / O.

这应该会让你走得很远,但是如果你仍想测试你的程序用stdout,stderr等做什么,使用child_process节点核心模块来运行你的程序然后你可以在你的程序中做出断言mocha测试退出代码,写入stdio的内容等等。