如何通过摩卡testing运行时参数?

我正在使用摩卡来testing我在node.js写的一些代码。

我的一个程序被devise为从运行时参数的命令行运行。 由于几个选项是目录,代码将validation选项并确定目录是否存在,包括可选的基本目录。

这是我想用摩卡testing的东西,但是代码并不是被devise成可以被导入的,因为它被devise成从命令行运行。

所以我的问题是,如何通过摩卡testing程序的命令行参数

我尝试了谷歌search,但唉,我不断收到关于摩卡的文章,提到摩卡的命令行,而不是如何testingnode.js代码的命令行。

       

网上收集的解决方案 "如何通过摩卡testing运行时参数?"

我会改变你的代码,以便testing友好使用以下步骤:

  • 把命令行参数parsing和处理放到一个函数中,该函数将一个string数组作为参数,并返回一个parsing的configuration对象。 在你的testing中,你可以合成命令行参数来执行你的代码。 在生产中,您只需发送process.argv
  • 把目录validation的东西放在单独的函数中,这些函数可以使用普通的mocha机制轻松地进行testing,使用在/tmp下创build的文件来执行任何您想要执行的文件系统I / O。

这应该会让你感觉很不错,但是如果你还想testing你的程序用stdout,stderr等做什么,使用child_process节点核心模块来运行你的程序,然后你可以在你的mochatesting中做出关于退出代码的断言,写入stdio的内容等