javascript - 如何测试不带参数的命令行应用程序?
问题描述
我有一个带有 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 个条目”。这就是它的要点,我该如何为此编写单元测试?
解决方案
我不熟悉 JavaScript,因此以下建议可能无法完全按照描述的方式工作。我希望你能在这种情况下轻松地将这个想法“移植”到在 JavaScript 中工作的类似东西......
您可能会做以下事情:拥有一些函数validateCommandLineArgs
并将其process.argv
作为参数传递:
function validateCommandLineArgs(argsArray){
... check if argsArray has four elements etc.
}
然后,您可以从您的单元测试中调用validateCommandLineArgs
任意创建的数组,以查找函数在不同场景中验证参数的方式是否存在错误。
推荐阅读
- reactjs - 如何使用 Spring Boot 和 react.js 为单页应用程序项目设置 AWS
- android-studio - 未在 android studio 3.3.2 中显示提取字符串资源
- javascript - 可以通过更改其可写属性描述符来更改 JavaScript 文件名吗?
- python - 无法解析 connection.execute()、Python 和 SQLAlchemy 返回的 ResultSet 中的行
- python-2.7 - 从 python 2 到 python 3 的代码转换
- sql - 对于 Unicode 字符串,我怎样才能摆脱在 WHERE 查询中添加“N”前缀?
- python - 我如何知道 python 安全数据库中包含哪些库
- python - 为什么在 Sublime Text 中导入 Pytorch 会导致 ModuleNotFoundError?
- c# - 在 WPF 中渲染视图时显示消息
- c# - 无法正常工作的路线总是返回同一页面