Для проекта JavaEE с работающими тестами JUnit 5 я решил попробовать ActiveJDBC. К сожалению, я реализовал все тесты с помощью JUnit 5 до этого решения, поэтому мне пришлось обновить свои тесты для использования с ActiveJDBC, и мне было интересно, почему они не получат соединение test-db из файла database.properties при расширении класса с помощью 'DBSpec' и просто выбросить DBException при использовании JUnit версии 5 вместо версии 4:
org.javalite.activejdbc.DBException: не удалось получить метаданные из БД, соединение: «по умолчанию» недоступно
JUnit 5 - тест
import org.javalite.activejdbc.test.DBSpec;
import org.junit.jupiter.api.Test;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.runner.RunWith;
@RunWith(JUnitPlatform.class)
public class MyModelTest extends DBSpec {
//Test will fail with DBException
@Test
public void one() {
MyModel model = new MyModel();
a(model).shouldBe("valid");
}
}
JUnit 5 - зависимости
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-runner</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.0</version>
<scope>test</scope>
</dependency>
Когда я переключаюсь на JUnit 4, все работает как положено
JUnit 4 - тест
import org.javalite.activejdbc.test.DBSpec;
import org.junit.Test;
public class MyModelTest extends DBSpec {
//Test will pass
@Test
public void one() {
MyModel model= new MyModel();
a(model).shouldBe("valid");
}
}
JUnit 4 - зависимости
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
Просто переписать мои тесты для JUnit4 не так уж и сложно, но есть ли планы поддержать JUnit5 в ближайшем будущем?