如何测试命令行参数处理
How to test command line arguments processing
我有一个接收命令行参数的程序(在我的例子中,它是一个使用 Argot 的 Scala 程序)。一个简化的用例类似于:
sbt "run -n 300 -n 50"
假设应用程序应该只接受(并打印)0
和 100
之间的数字,这意味着它应该丢弃 300
并只打印 50
。
测试它的最佳方法是什么?单元测试是否适用?与其处理 main
中的参数,也许我应该重构一个函数并测试该函数?
如果您想测试向您的程序传递参数的行为,那么您将需要执行黑盒 integration/system 测试(而非单元测试):
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 所说的,分解出代码来测试底层逻辑,而不测试接收参数的行为。
我有一个接收命令行参数的程序(在我的例子中,它是一个使用 Argot 的 Scala 程序)。一个简化的用例类似于:
sbt "run -n 300 -n 50"
假设应用程序应该只接受(并打印)0
和 100
之间的数字,这意味着它应该丢弃 300
并只打印 50
。
测试它的最佳方法是什么?单元测试是否适用?与其处理 main
中的参数,也许我应该重构一个函数并测试该函数?
如果您想测试向您的程序传递参数的行为,那么您将需要执行黑盒 integration/system 测试(而非单元测试):
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 所说的,分解出代码来测试底层逻辑,而不测试接收参数的行为。