Whenever I see a blog post related to Spring testing I see either of these classes but do not understand the real difference:
@RunWith(SpringRunner.class)
@RunWith(SpringJUnit4ClassRunner.class)
SpringRunner is an alias for the SpringJUnit4ClassRunner , which joins JUnit testing library with the Spring TestContext Framework. We use it with @RunWith(SpringRunner. class) . With SpringRunner , we can implement standard JUnit 4-based unit and integration tests.
@RunWith(SpringRunner. class) tells JUnit to run using Spring's testing support. SpringRunner is the new name for SpringJUnit4ClassRunner , it's just a bit easier on the eye.
@RunWith(SpringRunner. class) provides a bridge between Spring Boot test features and JUnit. Whenever we are using any Spring Boot testing features in our JUnit tests, this annotation will be required.
There is no difference, from the javadoc:
SpringRunner is an alias for the SpringJUnit4ClassRunner.
ref: https://docs.spring.io/spring/docs/4.3.0.RC2_to_4.3.0.RELEASE/Spring%20Framework%204.3.0.RELEASE/org/springframework/test/context/junit4/SpringRunner.html
@RunWith(SpringRunner.class)
tells JUnit to run using Spring’s testing support. SpringRunner
is the new name for SpringJUnit4ClassRunner
, it’s just a bit easier on the eye.
SpringRunner
is only available on spring-test 4.3.
SpringRunner
class extends SpringJUnit4ClassRunner
.
Source code of SpringRunner
is
package org.springframework.test.context.junit4;
import org.junit.runners.model.InitializationError;
public final class SpringRunner extends SpringJUnit4ClassRunner {
public SpringRunner(Class<?> clazz) throws InitializationError {
super(clazz);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With