Java 如何将Springbean注入静态类规则?
如何将Springbean注入静态类规则Java 如何将Springbean注入静态类规则?,java,spring,unit-testing,spring-test,Java,Spring,Unit Testing,Spring Test,如何将Springbean注入静态类规则 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {ConfigClass.class}) public class SimpleTest { @ClassRule public static SimpleClassRule simpleClassRule = new SimpleClassRule (); } 如果扩展SpringJUnit4C
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {ConfigClass.class})
public class SimpleTest {
@ClassRule
public static SimpleClassRule simpleClassRule = new SimpleClassRule ();
}
如果扩展SpringJUnit4ClassRunner.class并使用BeforeClasses和Before方法重写,则可以:
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);
}
}
公共类CustomRunner扩展了SpringJUnit4ClassRunner{
@凌驾
BeforeClasses的受保护语句(语句语句){
List testRules=classRules();
//spring方法注入现有对象,如injector.injectMembers(…);
返回super.withbefore类(语句);
}
}
重要提示:此解决方案不适用于规则链
另外,我在Spring JIRA中发现了以下解决方案:
目前,可以通过扩展
带有附加逻辑的DependencyInjectionTestExecutionListener(DITEL)
这将查找@Rule和@ClassRule字段,并将它们自动关联起来
作为测试实例的方式是自动连接的
您可能需要在
SimpleClassRule
中扩展org.springframework.test.context.junit4.rules.SpringClassRule
?