我最近一直在为应用程序进行JUnit测试。
此应用程序在Linux环境中执行,参数,选项和其他关键信息将合并到命令行中,然后发送到Java代码。
我一直在尝试使用JUnit 3.8.1找到测试应用程序某些方面的不同方法,但是我遇到了一些处理命令行和从它传递的参数的方法的问题。
我的问题:无论如何设置模拟或伪造的Linux命令行提示符,或者甚至尝试使用输入测试方法的命令行的硬编码?
我已经研究了一段时间,但我找不到真正回答我问题的任何内容。
非常感谢任何帮助。
答案 0 :(得分:2)
main方法是一个像任何其他方法一样的方法,所以你可以像任何其他方法一样对它进行单元测试,通过数组od字符串作为命令行参数。
但我不这样做。相反,我有main方法创建一个Program
对象并委托给该对象。我对这个Program
课进行单元测试。这样我就可以模拟环境的其他方面:Program
类的构造函数传递给命令行参数的字符串数组,系统属性的Properties
对象,{{1} }用于环境变量,等等。我留下了一个小的主要方法,我不进行单元测试,而Map
类我可以进行彻底的单元测试。
答案 1 :(得分:1)
我不知道你搜索的是不是。要从java执行commando linea命令,您可以使用ExecuteShellCommand。
ExecuteShellComand obj = new ExecuteShellComand();
String output = obj.executeCommand(command);