如何测试命令行参数处理

时间:2015-07-18 23:48:08

标签: unit-testing testing command-line-arguments

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

sbt "run -n 300 -n 50"

并且假设该应用只应接受(并打印)0100之间的数字,这意味着它应该丢弃300并仅打印50

测试它的最佳方法是什么?单位测试是否适用?可能我应该重构函数并测试函数,而不是处理main中的参数?

1 个答案:

答案 0 :(得分:1)

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

  

黑盒测试是一种软件测试方法,可以检查应用程序的功能,而不会窥视其内部结构或工作方式。请参阅this

否则,就像克里斯所说的那样,并且在不测试接收参数的行为的情况下将代码分解出来以测试底层逻辑。