从cmd运行Java应用程序时,验证传递一个参数时触发一种行为,而当没有传递参数时触发另一种行为的正确方法是什么?
由于主要方法是静态的,因此验证起来有些棘手,但我也觉得引入PowerMock对此有点过头。
如果没有cmd参数,我基本上想创建一个没有参数的构造函数的对象,如果有传递给应用程序的参数,则想创建一个带有String参数构造函数的对象。
答案 0 :(得分:1)
我看不到您的代码,所以我只能想象它的样子。
我可以想象在main方法中触发了一些逻辑,从而导致一个或另一个事件。
我建议考虑将参数的处理移至另一个类(ArgumentProcessor
),该类可以由构造函数中的构建器对象或工厂对象提供,并且可以有一个返回的process(String [] args)
方法一个可运行的或您想要实现的目标。
如果您随后向ArgumentProcessor提供了存根不明的构建器/工厂,则我认为应该可以检查逻辑是否以正确的方式进行了处理。