从cmd运行Java应用程序时,验证传递一个参数时触发一种行为,而当没有传递参数时触发另一种行为的正确方法是什么?
由于主要方法是静态的,因此验证起来有些棘手,但是我也觉得引入PowerMock对此有点过头。
基本上,如果没有cmd参数,我想创建一个不带参数的构造函数的对象,如果将参数传递给应用程序,则要创建一个带String参数构造函数的对象。
最佳答案
我看不到您的代码,因此我只能想象它的外观。
我可以想象在main方法中触发了一些逻辑,这导致一个或另一个事件。
我建议考虑将参数的处理移到另一个类(ArgumentProcessor
),该类可以与构造函数中的生成器对象或工厂对象一起使用,并且它可以具有process(String [] args)
方法,该方法返回可运行对象或您想要的任何对象实现。
如果您随后向ArgumentProcessor提供了存根较差的生成器/工厂,则我认为应该可以检查逻辑是否以正确的方式处理。
关于java - 根据应用程序参数JUnit验证行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51860184/