根据应用程序参数JUnit验证行为

时间:2018-08-15 13:59:59

标签: java junit mockito

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

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

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

1 个答案:

答案 0 :(得分:1)

我看不到您的代码,所以我只能想象它的样子。

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

我建议考虑将参数的处理移至另一个类(ArgumentProcessor),该类可以由构造函数中的构建器对象或工厂对象提供,并且可以有一个返回的process(String [] args)方法一个可运行的或您想要实现的目标。 如果您随后向ArgumentProcessor提供了存根不明的构建器/工厂,则我认为应该可以检查逻辑是否以正确的方式进行了处理。