Mockito 模拟无法在主要方法上工作 java

Mockito mock not working on main method java

public class example
{
    public void method()
    {
        System.out.println("Shouldn't be here!");
    }
}
public class examplemain
{
    public static void main(String[] args)
    {
        example obj = new example();
        obj.method();
        System.out.println("Inside Main");
    }
}

我只想测试 main,不想调用 method 函数。 我用这个-

class examplemainTest
{
    @Test
    void main()
    {
        example obj = mock(example.class);
        doNothing().when(obj).method();

        String[] args = new String[0];
        examplemain.main(args); //line 1

        obj.method(); //line 2
    }
}

但它仍然在第 1 行中调用 method 函数并且它仅适用于第 2 行。 以下是我在 运行 测试后得到的输出。

不应该在这里!

主内

进程已完成,退出代码为 0

examplemain.main()examplemainTest.main()中的obj变量指的是不同的对象。在 examplemain.main() 中,您在上一行创建的具体对象上调用方法。在 examplemainTest.main() 中,您在方法开头创建的模拟对象上调用该方法。

您似乎难以理解 Java 编程中的一些最基本的概念。在深入研究单元测试中模拟依赖关系这一相当高级的主题之前,您应该花更多时间研究对象初始化、对象引用、静态访问、字段可见性和范围。

我研究了一下,提供了处理此类 类 测试的最佳方法