unit-testing - 如何测试命令行参数处理

标签 unit-testing testing command-line-arguments

我有一个接收命令行参数的程序(在我的例子中,它是一个使用 Argot 的 Scala 程序)。一个简化的用例类似于:

sbt“运行-n 300 -n 50”

想象一下,应用程序应该只接受(并打印)0100 之间的数字,这意味着它应该丢弃 300 并只打印50

测试它的最佳方法是什么?单元测试是否适用?与其在 main 中处理参数,不如重构一个函数并测试该函数?

最佳答案

如果您想测试将参数传递给您的程序的行为,那么您将需要执行黑盒集成/系统测试(而非单元测试):

Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. See this.

否则,就按照 Chris 所说的那样,分解出代码来测试底层逻辑,而不测试接收参数的行为。

关于unit-testing - 如何测试命令行参数处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496657/

相关文章:

php - 代码覆盖率报告错误地指示 Controller 的 100% 覆盖率

java - 在运行时查看方法调用 java jar 文件

python - Perl 的 (<>) 在 Python 中的等价物是什么? fileinput 没有按预期工作

objective-c - 由于垃圾收集器禁用而无法运行 Cocoa UnitTests

python - django 测试文件下载 - "ValueError: I/O operation on closed file"

angularjs - 在 AngularJs 应用程序上使用 Mocha 设置单元测试

javascript - 如何让 QUnit 在异常时打印回溯?

string - 需要格式良好的数据进行测试

python - 将命令行参数转发到 Python 中的进程

java - 如何处理像 "java.exe program < s1.in"这样的命令行输入