VerifyError: класс net.sf.cglib.core.DebuggingClassWriter отменяет окончательное посещение метода - PullRequest
1 голос
/ 13 февраля 2012

Я столкнулся с этой ошибкой при запуске модульных тестов.

Я использую intellij, EasyMock 3.0, cglib (2.2) и Objenesis (1.2).

Вот мой тест:

public void testGetContentOk() throws Exception {
    EasyMock.expect(mockConnectionFactory.getData()).andReturn(mockInputStream);
    EasyMock.expect(mockInputStream.read()).andReturn(new Integer( (byte)'I'));
    EasyMock.expect(mockInputStream.read()).andReturn(-1);
    mockInputStream.close();
    EasyMock.replay(mockConnectionFactory);
    EasyMock.replay(mockInputStream);
    WebClient webClient = new WebClient();
    String result = webClient.getContent(mockConnectionFactory);
    Assert.assertEquals("I", result);
}

Кто-нибудь знает, почему это происходит?

Мне интересно это, поскольку я уже использую правильную версию, по крайней мере, мне так кажется.Буду благодарен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2013

У меня просто есть похожая проблема. Попробуйте получить дерево зависимостей. Если вы можете найти, есть ли lib зависит от asm 4.0. А asm 4.0 не может хорошо работать с cglib 2.2. Это может быть причиной.

В моем собственном случае я использую maven для проекта, чтобы mvn dependency:tree получил дерево зависимостей. И я нашел что-то вроде этого:

[ИНФО] | | | - com.esotericsoftware.kryo: kryo: jar: 2.21: compile

[ИНФО] | | | + - com.esotericsoftware.reflectasm: refleasm: jar: затенено: 1.07: compile

[ИНФО] | | | | - org.ow2.asm: asm: jar: 4.0: компилировать

Я изменяю asm на 3.1, и он работает. И EasyMock нужно использовать что-то вроде asm, это будет зависеть от него. Пусть это поможет.

0 голосов
/ 18 апреля 2013

Проверьте зависимости библиотек вашего проекта. Например, если ваш проект использует asm.jar, убедитесь, что он в правильной версии для вас cglib. Насколько я знаю, asm 3.3 прекрасно работает с cglib 2.2, но более поздняя версия будет конфликтовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...