Mockito 2.7.2.2 с JUnit5

В настоящее время я пытаюсь использовать этот учебник:

http://www.vogella.com/tutorials/Mockito/article.html

Установка здесь начинается с и это неприменимо

 @Rule
    public MockitoRule mockitoRule = MockitoJUnit.rule();

В Docu of JUnit говорится, что он устарел, и я не смог найти документ, как настроить mockito с помощью JUnit 5. Даже этот учебник выше от апреля этого года, самый новый, который я нашел.

Вопрос: Интересно, mockito просто несовместим с JUnit5? Если нет: как я могу запустить его? Я нашел аналогичный вопрос (Как использовать Mockito с JUnit5) и ответ от Николая не работает. Он предлагает использовать @Mock... да, моя IDE принимает его, НО Mocks не работают в тестах, как в примере ниже.

Вот мой тестовый файл (пока без тестов)

import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class Test{

    @Rule
    public MockitoRule mockitoRule = MockitoJUnit.rule();

    @Mock
    Type change;

    @Mock
    File file;

    @Test
     void testCTORExceptionWithNull() {
         Throwable exception = assertThrows(AssertionError.class, () -> {
            new Person(file, -1);
       });
      assertEquals("buffer size is negative", exception.getMessage());
   }

}

Вместо того, чтобы получить «размер буфера отрицательный», я получаю «файл не прикреплен». Так что @Mock не работает?!?

и мой ПОМ

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>1</groupId>
    <artifactId>2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.7.22</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
        </dependency>
    </dependencies>
</project>

Я знаю, что было бы быстрее просто использовать Junit4 вместо того, чтобы задавать этот вопрос, но почему-то это привлекает меня к решению проблем :)

Изменить:

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


person PowerFlower    schedule 27.04.2017    source источник
comment
Эй, пожалуйста, снова прочитайте ответ Николая в дублирующем вопросе, вам нужно либо: использовать аннотацию @Mock и соответствующий вызов MockitoAnnotations::initMocks для создания макетов, либо использовать прототип MockitorExtension, реализованный командой JUnit.   -  person    schedule 27.04.2017
comment
ну хорошо, я ожидал на самом деле какого-то официального вместо обходного пути почти 6 месяцев назад :) но хорошо, тогда я живу с этим. С уважением   -  person PowerFlower    schedule 27.04.2017
comment
@PowerFlower Как только проблема Mockito № 445, упомянутая в этом другом ответе, будет решена (и я слышал об этом), я обновлю ответ, но в его нынешнем виде он актуален.   -  person Nicolai Parlog    schedule 27.04.2017
comment
@PowerFlower, возможно, вы могли бы затем проголосовать за ответ Николая (если это еще не сделано);)   -  person    schedule 27.04.2017