2017-02-16 13 views
1

Как добавить весенний боб в статический класс?Как добавить весенний боб в статический класс?

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

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

} 
+0

Возможно, вам придется расширять 'org.springframework.test.context.junit4.rules.SpringClassRule' в' SimpleClassRule'? – 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.

также я узнал следующее решение в Spring JIRA: https://jira.spring.io/browse/SPR-10252

В настоящее время это может быть достигнуто за счет расширения DependencyInjectionTestExecutionListener (DITEL) с дополнительной логики , которая ищет @Rule и @ClassRule полей и автоувеличивает их один и тот же путь , поскольку тестовый экземпляр является автоуведомленным.

 Смежные вопросы

  • Нет связанных вопросов^_^