Моя команда и я работали над кучей микросервисов, используя Spring boot. Поскольку службы прошли обновления JUnit и Spring Boot (сейчас мы используем Spring Boot 2 и JUnit 5), разные JUnit, реализованные разными разработчиками, теперь используют разные шаблоны с:
В чем сегодня разница между ними и нужны ли они нам для наших модульных тестов или они встроены в какую-то новую аннотацию Spring Boot?




@RunWith — это старая аннотация из JUnit 4 для использования тестовых бегунов. Если вы используете JUnit 5 (Jupiter), вам следует использовать @ExtendWith для использования расширений JUnit.
Ответ можно найти в документация:
If you are using JUnit 4, don’t forget to add @RunWith(SpringRunner.class)to your test, otherwise the annotations will be ignored. If you are using JUnit 5, there’s no need to add the equivalent @ExtendWith(SpringExtension.class) as @SpringBootTest and the other @…Testannotations are already annotated with it
.
Если вы используете версию Junit < 5, вам нужно использовать @RunWith(SpringRunner.class) или @RunWith(MockitoJUnitRunner.class) и т. д.
Если вы используете версию Junit = 5, вам нужно использовать @ExtendWith(SpringExtension.class) или @ExtendWith(MockitoExtension.class) и т. д.