Mockito中的NoClassDefFoundError

时间:2014-07-13 06:55:33

标签: unit-testing mocking mockito

我无法模拟IntelliJIdea中外部库中的类。它给了我一个错误。

java.lang.NoClassDefFoundError: com/adobe/cq/mcm/salesforce/SalesforceClient
    at com.ig.igwebcms.services.test.SalesforceLeadSearch1Test.testGetSalesforceClientObject(SalesforceLeadSearch1Test.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

以下是我的代码:

@RunWith(MockitoJUnitRunner.class)
public class SalesforceLeadSearch1Test  {
    @Test
    public void testGetSalesforceClientObject() throws Exception {
        SalesforceClient client = mock(SalesforceClient.class);
        Map configProps=mock(Map.class);
    }
}

我已经检查过,依赖是在maven' POM也是如此。尝试模拟它们时,外部库中的所有类都会遇到同样的异常。 &安培;地图类的模拟并没有给出这个错误。

1 个答案:

答案 0 :(得分:0)

Mockito无法模仿一切。事实上,在他们的代码指南中,您可以看到他们建议不要模拟您不拥有的类型。您应该尝试重构您的代码,以便客户端被抽象化。

你也在嘲笑一张地图......你为什么嘲笑它?为什么不创建一个呢?