2017-02-16 12 views
1

静的classRuleにSpring Beanを挿入する方法は?静的classRuleにSpring Beanを挿入する方法は?

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = {ConfigClass.class}) 
public class SimpleTest { 

@ClassRule 
public static SimpleClassRule simpleClassRule = new SimpleClassRule(); 

} 
+0

'SimpleClassRule'に' org.springframework.test.context.junit4.rules.SpringClassRule'を拡張する必要がありますか? – vegaasen

答えて

0

あなたは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には適用されません。

も私は春JIRAで、次の解決策を見つけた: 現在、それは@Ruleと@ClassRuleフィールドを探します追加のロジック で DependencyInjectionTestExecutionListener(DITEL)を拡張することによって達成することができhttps://jira.spring.io/browse/SPR-10252

テストインスタンスがautowiredと同じ方法で の方法でautowireします。

関連する問題