2012-07-16 79 views
2

我编写了一个Java独立应用程序,它接受输入命令行参数。如何使用JUnit测试用例进行测试?为需要命令行输入的Java独立执行JUnit测试用例

+0

与其他任何方式相同,但除非您正在测试参数传递,否则您应该测试实际逻辑,例如应用程序中的方法。如果参数编组被正确隔离,那么也可以进行测试。否则,您可以像使用其他静态方法一样调用main参数。 – 2012-07-16 17:07:29

回答

3

只需从JUnit调用您的main()方法即可。但是,由于main()不返回任何内容,因此不能轻松写出任何断言(您必须依赖副作用)。

因此,为了简化测试的可维护性,请使用从实际逻辑中分析参数的main()方法。单独使用模拟逻辑测试main()来分别测试参数解析和业务逻辑测试。您的业​​务逻辑将具有定义良好的强类型接口,使测试和理解变得更加容易。

此步骤还会减少耦合并提高可读性。

+0

在类似的行上,我能够通过参数实现Standalone java上的JUnit测试。我创建了模拟主要方法。在我的情况下,它会执行System.exit(带有状态码)并返回正确参数的文本。因此,Junit无法读取此结果,但我监视日志输出/控制台。 – Hussain 2012-07-24 21:06:28