Вопрос миграции с 4 июня на 5 июня - PullRequest
0 голосов
/ 27 сентября 2018

Я перемещаю свою кодовую базу из junit4 в junit5. Я использовал mockito в своем тестовом примере. Ниже приведены различные версии, которые я использую для зависимости.

<junit.jupiter.version>5.2.0</junit.jupiter.version>
<junit.platform.version>1.2.0</junit.platform.version>
<org.mockito.version>1.10.19</org.mockito.version>

   <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-junit-jupiter</artifactId>
        <version>2.19.0</version>
        <scope>test</scope>
    </dependency>

Я использовал аннотацию @RunWith(MockitoJUnitRunner.class) для запуска моего кода mockito. Заменил то же самое на @ExtendWith(MockitoExtension.class)

Но когда я запускаю тестовый пример, я получаю следующую ошибку.Любое предложение, чтобы решить эту проблему.Я подозреваю, что существует какая-либо проблема версии зависимости, которая вызывает эту проблему.

java.lang.NoClassDefFoundError: org/mockito/quality/Strictness
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.getDeclaredConstructor(Class.java:2178)
at..

Спасибо -Sam

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Спасибо за ответ.Ниже приведена версия, которую я использовал для разрешения того же.

       <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.3.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-runner</artifactId>
            <version>1.3.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <version>2.22.0</version>
            <scope>test</scope>
        </dependency>

Также мне понадобилось mockito-core => версия 2.22.0 .Но вышеупомянутый mockito-junit-jupiter поставляется с внутренней зависимостью mockito. Так что нет необходимости добавлять эту зависимость.

0 голосов
/ 27 сентября 2018

JUnit5 MockitoExtension использует org.mockito.quality.Strictness, поэтому для использования MockitoExtension вам необходимо использовать версию mockito-core, которая содержит org.mockito.quality.Strictness.mockito-core:1.10.19 не содержит этот класс, потому что этот класс был добавлен в Mockito 2.x.Итак, чтобы использовать MockitoExtension, вам нужно использовать как минимум версию 2.x из mockito-core.

Документы Mockito не делают этого явным, но я подозреваю, что вы 'Я буду использовать ту же версию Mockito для mockito-core и для mockito-junit-jupiter.

Следующие зависимости позволят вам успешно использовать JUnit5 MockitoExtension:

<org.mockito.version>2.19.0</org.mockito.version>

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>${org.mockito.version}</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-junit-jupiter</artifactId>
    <version>${org.mockito.version}</version>
    <scope>test</scope>
</dependency>
...