【问题标题】:Executing JUnit test case for Java standalone that takes command line inputs为接受命令行输入的 Java 独立执行 JUnit 测试用例
【发布时间】:2013-03-12 16:18:24
【问题描述】:

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

【问题讨论】:

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

标签: java junit command-line-arguments


【解决方案1】:

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

因此,为了测试的简单性和可维护性,请将带有参数解析的 main() 方法与实际逻辑分开。单独使用模拟逻辑测试main(),分别测试参数解析和测试业务逻辑。您的业​​务逻辑将具有定义明确的强类型接口,使其更易于测试和理解。

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

【讨论】:

  • 在类似的行中,我能够使用参数在独立 java 上实现 JUnit 测试。我创建了模拟主要方法。在我的情况下,它执行 System.exit(带有状态代码)并返回文本以获得好的参数。所以 Junit 没有办法读取这个结果,但我监控日志输出/控制台。
猜你喜欢
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
相关资源
最近更新 更多