在 JUnit 4.10 中,BlockJUnit4ClassRunner(SpringJUnit4ClassRunner 的超类)似乎很注意构造语句链,使得规则在任何 @Before 方法之前运行。从 JUnit 4.10 开始:
protected Statement methodBlock(FrameworkMethod method) {
// ...
Statement statement= methodInvoker(method, test);
statement= possiblyExpectingExceptions(method, test, statement);
statement= withPotentialTimeout(method, test, statement);
statement= withBefores(method, test, statement);
statement= withAfters(method, test, statement);
statement= withRules(method, test, statement);
return statement;
}
JUnit 4.7 似乎以不同的顺序将语句链缝合在一起:
Statement statement= methodInvoker(method, test);
statement= possiblyExpectingExceptions(method, test, statement);
statement= withPotentialTimeout(method, test, statement);
statement= withRules(method, test, statement);
statement= withBefores(method, test, statement);
statement= withAfters(method, test, statement);
return statement;
spring-test-3.0.5 的父 POM 似乎表明它依赖于 JUnit 4.7。我想知道让它使用更新的 JUnit 是否会有帮助?