Это возможно, если вы расширяете SpringJUnit4ClassRunner.class и переопределить withBeforeClasses, withBefores методы:
public class CustomRunner extends SpringJUnit4ClassRunner {
@Override
protected Statement withBeforeClasses(Statement statement) {
List<TestRule> testRules = classRules();
// spring method to inject into existing object like injector.injectMembers(...);
return super.withBeforeClasses(statement);
}
}
важно: это решение не распространяется на RuleChains.
также я узнал следующее решение в Spring JIRA: https://jira.spring.io/browse/SPR-10252
В настоящее время это может быть достигнуто за счет расширения DependencyInjectionTestExecutionListener (DITEL) с дополнительной логики , которая ищет @Rule и @ClassRule полей и автоувеличивает их один и тот же путь , поскольку тестовый экземпляр является автоуведомленным.
Возможно, вам придется расширять 'org.springframework.test.context.junit4.rules.SpringClassRule' в' SimpleClassRule'? – vegaasen