【问题标题】:NoClassDefFoundError for MockitoInvocationHandler classMockitoInvocationHandler 类的 NoClassDefFoundError
【发布时间】:2012-08-28 10:39:44
【问题描述】:

我正在使用mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar。 当我运行这个简单的单元测试来模拟非最终类中的最终方法时。

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
@PrepareForTest(ABC.class)
public class ABCTest {

    @Test
    public void finalCouldBeMock() {
        final ABC abc = PowerMockito.mock(ABC.class);
        PowerMockito.when(abc.myMethod()).thenReturn("toto");
        assertEquals("toto", abc.myMethod());
    }

}

当我运行它时,我得到了 java.lang.NoClassDefFoundError: org/mockito/internal/MockitoInvocationHandler Caused by: java.lang.ClassNotFoundException: org.mockito.internal.MockitoInvocationHandler

当我在 mockito-all-1.9.5-rc1.jarpowermock-mockito-1.4.12-full.jar 中搜索类 MockitoInvocationHandler 时。我找不到任何东西。 需要帮助解决这个问题!谢谢

【问题讨论】:

    标签: java junit4 mockito powermock


    【解决方案1】:

    Mockito 1.9.5-rc1 必须在内部进行重构以允许第三方模拟制造商。 MockitoInvocationHandler 在 Mockito 1.9.0 之前是 Mockito 内部的一部分(正如包名所暗示的)。

    由于这些变化,当前一些旧版本的 Powermock 版本截至今天与最新的 Mockito 版本不兼容。

    避免模拟/存根决赛或静态的另一个原因;)

    希望有所帮助 干杯,

    【讨论】:

    • 您好,Brice 帮了大忙。谢谢。
    • @gontard - 没有“必须”。但是,如果有人接受了答案,他们就更有可能得到他们提出的后续问题的答案。
    • 更新 - 负责 PowerMock 的 Johan 在 PowerMock 问题 398 上发布了以下内容(关于与 Mockito 1.9.5 不兼容的问题) - “我现在已经实现了对 1.9.5 的支持 -主干中的 rc1。请尝试从源代码构建并报告问题。”所以我想鼓励 sura watthana 完全按照 Johan 的建议去做。
    • “避免模拟/存根决赛或静态的另一个原因;)”这就是图书馆维护的原因。对此点赞
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2012-11-10
    • 1970-01-01
    • 2017-02-01
    • 2011-09-07
    相关资源
    最近更新 更多