Spring Framework 4.1 raised the minimum JUnit version to 4.9 in the Spring TestContext Framework. At that time a check was added to SpringJUnit4ClassRunner to ensure that the withRules() method in BlockJUnit4ClassRunner is present. However, this is not a robust solution since the withRules() method exists since JUnit 4.7, and this has led to confusion in the community. See the linked discussion on Stack Overflow for details.
In SpringJUnit4ClassRunner, SpringClassRule, and SpringMethodRule:
Log an exception if org.junit.runners.model.MultipleFailureException is not present.
Throw meaningful exception if JUnit 4.9 is not present
SpringJUnit4ClassRunner, SpringClassRule, and SpringMethodRule now throw an IllegalStateException with a meaningful message if JUnit 4.9 is not present in the classpath (specifically if org.junit.runners.model.MultipleFailureException cannot be loaded).