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

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

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

最佳答案

我看不到您的代码,因此我只能想象它的外观。

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

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

关于java - 根据应用程序参数JUnit验证行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51860184/

10-10 05:32
查看更多