2017-02-16 5 views
1

스프링 콩을 정적 classRule에 주입하는 방법은 무엇입니까?spring bean을 정적 classRule에 주입하는 방법은 무엇입니까?

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 적용되지 않습니다

@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.

도 나는 봄 JIRA에 다음과 같은 해결책을 발견 : 현재이 @Rule 및 @ClassRule 필드를 찾습니다 추가 논리 와 DependencyInjectionTestExecutionListener (DITEL)를 확장함으로써 달성 될 수있다 https://jira.spring.io/browse/SPR-10252

테스트 인스턴스가 자동으로 실행될 때 같은 방법으로 을 자동 실행합니다.