在使用Mockito进行单元测试时,如何处理ThirdParty类的静态方法调用?

兰吉特·索尼(Ranjit Soni):

使用Mockito测试方法时遇到问题。请检查JunitTestCaseClass的testMethodToBeTested()方法,该方法必须处理第三方类的静态方法调用。

class ClasssToBeTested{

    public String methodToBeTested() {
        String result = ThirdPartyUtilClass.methodToBeCall();
        return result;
    }
}

class ThirdPartyUtilClass{

    public static String methodToBeCall(){
        return "OK";
    }
}

// JunitTestCase which will test method "methodToBeTested()" of ClasssToBeTested class
class JunitTestCaseClass{

    @InjectMocks
    private ClasssToBeTested classsToBeTested;

    @Test
    public void testMethodToBeTested() {
        //How to handle ThirdPartyUtilClass.methodToBeCall(); statement in unit testing
        String result = classsToBeTested.methodToBeTested();
        Assert.assertNotNull(result);
    }
}

请帮助并提前致谢。

Eshu:

我认为这是您无法解决问题的答案:https : //github.com/mockito/mockito/wiki/FAQ

Mockito的局限性是什么

Mockito 2.x的特定限制

Requires Java 6+
Cannot mock static methods
Cannot mock constructors
Cannot mock equals(), hashCode(). 

首先,您不应该模拟那些方法。其次,Mockito定义并依赖于这些方法的特定实现。重新定义它们可能会破坏Mockito。仅在Objenesis支持的VM上可以进行模拟。不用担心,大多数VM都可以正常工作。监视真正的实现中通过OuterClass引用外部类的真正方法,这是不可能的。别担心,这是极为罕见的情况。

如果您真的想模拟静态方法,那么PowerMock是您的解决方案。https://github.com/powermock/powermock/wiki/mockito

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Mockito模拟静态方法以进行单元测试

Python / Django单元测试,如何处理外部调用?

单元测试时如何处理API调用率限制?

做单元测试时如何处理elasticsearch的延迟?

使用Mockito进行单元测试改造API调用-ArgumentCaptor

使用 Mockito 对基于 Guice 的类进行单元测试

如何通过静态调用对功能进行单元测试

单元测试静态类的静态方法

如何使用C#中的Microsoft Fakes访问静态类专用字段以对其方法进行单元测试

如何模拟要使用JUnit + Mockito进行单元测试的服务中使用的类

如何对Mockito中的Builder类的方法参数进行单元测试?

使用 Mockito|Android 对调用私有回调的方法进行单元测试

如何使用EasyMock对要模拟的类进行多个内部调用来对方法进行单元测试

Android-如何使用Mockito对测井类进行单元测试

如何对已测试(视图模型)类中的方法进行单元测试调用?

如何使用Mockito在单元测试中调用AppCompatActivity onCreate

如何在单元测试中调用公共静态方法

如何/应该使用Mockito对EventBus事件进行单元测试?

如何使用Mockito对图节点进行单元测试?

使用Mockito进行Runnable的单元测试

使用Mockito进行单元测试LazyLogging

使用Mockito对POJO进行单元测试

如何使用 spring boot 和 mockito 对控制器方法进行单元测试

如何对使用IoC容器类的类进行单元测试

如何对使用Console类的类进行单元测试?

在进行单元测试时如何调用React组件的自定义方法。我正在使用打字稿

如何对静态属性进行单元测试?

如何对调用 void 方法的方法进行单元测试?

如何使用phpunit单元测试在已测试类的构造函数中调用的方法