提问者:小点点

使用Mockito模拟静态Void方法


我有一个类如下:

class Abc{
    static void fun() throws AbcException{
        throw new Exception("Some exception message");
    }
    
    static{
        try{
            fun();
        }catch(AbcException ex){
            ex.printStackTrace();
        }
    }
}

fund()调用了一些其他函数,如果环境配置不正确,它后面有一系列函数会抛出AbcException。在单元测试环境中,我遇到了AbcException,如下所述。

(此外,在这个类中还有许多其他方法,我已经提到了)

我想在我的测试文件中创建一个Abc类的实例。我正在使用JUnit 4和Mockito 4.8.1。我尝试了以下方法:

  1. https://github.com/mockito/mockito/issues/2027
  2. https://github.com/mockito/mockito/issues/2390

我写我的测试如下:

@Before
public void setup(){
    try (MockedStatic<Abc> abc = mockStatic(Abc.class)) {
        // some test setup
    }
}

这没有帮助,因为在调用mockStatic(Abc. class)时抛出了AbcException。

在这种情况下,有没有办法成功mock Abc类?


共1个答案

匿名用户

对于Mockito的Void方法,您可以:

简单的模拟和验证

参数捕获

接听Void电话

部分嘲笑