В настоящее время я пытаюсь использовать этот учебник:
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 отметил это здесь как точную копию ссылки, которой я поделился выше ... Более того, ответ на этот вопрос неверен, как я также заявил здесь.