Question
My team and I have been working on a bunch of microservices using Spring boot. Since the services went through JUnit and Spring Boot upgrades (We're using now Spring Boot 2 and JUnit 5), different JUnit implemented by different devs, are now using different patterns with:
- @ExtendWith
- @RunWith
Today what's the difference between the two of them and do we really need them for our Unit Tests or are embedded in some new Spring Boot annotation?
Answer
The answer can be found in the [documentation](https://docs.spring.io/spring- boot/docs/current/reference/html/boot-features-testing.html):
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
.