根据应用参数 JUnit 验证行为



验证在传递参数时触发一种行为,而在从cmd运行Java应用程序时没有传递参数时触发另一种行为的正确方法是什么?

由于主要方法是静态的,因此验证起来有点棘手,但我也觉得引入 PowerMock 有点过分了。

基本上,如果没有cmd参数,我想创建一个带有没有参数的构造函数的对象,如果有传递给应用程序的参数,则创建一个带有String参数构造函数的对象。

我没有看到你的代码,所以我只能想象它的样子。

我可以想象在 main 方法中触发了一些逻辑,这会导致一个或另一个事件。

我建议考虑将参数的处理转移到另一个类(ArgumentProcessor(,该类可以在构造函数中与构建器对象或工厂对象一起馈送,并且可以有一个返回可运行对象或任何您想要实现的process(String [] args)方法。 如果您随后向 ArgumentProcessor 提供存根生成器/工厂,那么我认为应该可以检查逻辑是否已以正确的方式处理。

最新更新