0
我有一个程序接收命令行参数(在我的情况下,它是一个使用Argot的Scala程序)。一个简化的使用情况会是这样的:如何测试命令行参数处理
sbt "run -n 300 -n 50"
想象着应用程序应该只接受(和打印)号0
和100
之间,这意味着它应丢弃300
并打印50
。
什么是测试它的最佳方法?单元测试是否适用?也许我应该重构一个函数并测试函数,而不是处理main
中的参数?
我有一个程序接收命令行参数(在我的情况下,它是一个使用Argot的Scala程序)。一个简化的使用情况会是这样的:如何测试命令行参数处理
sbt "run -n 300 -n 50"
想象着应用程序应该只接受(和打印)号0
和100
之间,这意味着它应丢弃300
并打印50
。
什么是测试它的最佳方法?单元测试是否适用?也许我应该重构一个函数并测试函数,而不是处理main
中的参数?
如果你想测试的传递参数的非常行为,以你的程序,那么你就需要执行一个黑整合/系统测试(不是一个单元测试):
黑箱测试一种软件测试方法,它可以检查应用程序的功能,而无需关注其内部结构或工作方式。见this。
否则,就像克里斯说的那样,将代码分解出来,以测试底层逻辑而不用测试接收参数的行为。
分解并单元测试各个组件。 – Chris