2017-02-16 1 views
1

Comment injecter le haricot de printemps en classeRule statique?Comment injecter le haricot de printemps dans le classRule statique?

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

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

} 
+0

Peut-être faudra-t-il étendre 'org.springframework.test.context.junit4.rules.SpringClassRule' dans' SimpleClassRule'? – vegaasen

Répondre

0

Il est possible que si vous étendez SpringJUnit4ClassRunner.class et passer outre withBeforeClasses, withBefores méthodes:

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); 
    } 
} 

importante: cette solution ne demande pas RuleChains.

aussi je trouve la solution suivante Spring JIRA: https://jira.spring.io/browse/SPR-10252

Actuellement, il peut être atteint par l'extension DependencyInjectionTestExecutionListener (DITEL) avec une logique supplémentaire qui recherche les champs @Rule et @ClassRule et autowires eux le même comme instance de test est autowired.