2015-07-18 31 views
0

我有一个程序接收命令行参数(在我的情况下,它是一个使用Argot的Scala程序)。一个简化的使用情况会是这样的:如何测试命令行参数处理

sbt "run -n 300 -n 50"

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

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

+5

分解并单元测试各个组件。 – Chris

回答

1

如果你想测试的传递参数的非常行为,以你的程序,那么你就需要执行一个黑整合/系统测试(不是一个单元测试):

黑箱测试一种软件测试方法,它可以检查应用程序的功能,而无需关注其内部结构或工作方式。见this

否则,就像克里斯说的那样,将代码分解出来,以测试底层逻辑而不用测试接收参数的行为。