如何测试不带参数的命令行应用程序?

时间:2019-07-14 16:27:39

标签: javascript unit-testing command-line mocha chai

我有一个带有4个参数的命令行应用程序,现在我正在为它们编写单元测试。由于我的函数没有任何参数,我只是对如何准确编写这些测试有一些疑问?

因此在控制台中,要运行该应用程序 test.js arg1 arg2 arg3 arg4 输出。

我可以将整个函数包装到更大的函数中并分配参数,然后以这种方式进行测试,但是有更好的方法吗?像是来自用户的虚假输入?

function test(){
  arg1 = process.argv[2];
  arg2 = process.argv[3];
  arg3 = process.argv[4];
  arg4 = process.argv[5];

  console.log(arg1 + arg2 + arg3 + arg4);
}

所以我想测试任何输入是否为空?该错误应产生“需要所有4个条目”。这就是关键,我该如何编写单元测试?

1 个答案:

答案 0 :(得分:0)

我对JavaScript不熟悉,因此以下建议可能无法完全按照所描述的方式工作。我希望在这种情况下,您可以轻松地将其“移植”到可在JavaScript中使用的类似内容...

您可能会执行以下操作:拥有一些功能validateCommandLineArgs并将其传递给process.argv作为参数:

function validateCommandLineArgs(argsArray){
    ... check if argsArray has four elements etc.
}

然后,从单元测试中,可以使用任意创建的数组调用validateCommandLineArgs,以查找函数在不同情况下验证参数的方式是否存在错误。