2015-07-17 1 views
2

предположит, что вы имеете следующую ситуацию во время тестирования контекста пружинногоКак ввести значение, исходящее из правила, в тестовый весенний контекст?

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

@ClassRule 
static PluginThatSetsUpSomethingEmbedded pluginRule = new PluginThatSetsUpSomethingEmbedded(); 



} 

Теперь один из моих весенних бобов нужно что-то, что может исходить только из этого правила, как:

pluginRule.getEmbeddedToolConfig() 

как я могу предоставить мой боб с этой конфигурацией, обратите внимание, что правило ClassRule и статично тоже ...

ответ

0

Я предлагаю вам использовать ApplicationContextInitializer и ваш тестовый класс будет что-то вроде этого:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = {ConfigClass.class}, initializers = IntegrationTest.Initializer.class) 
public class IntegrationTest { 

@ClassRule 
static PluginThatSetsUpSomethingEmbedded pluginRule = new PluginThatSetsUpSomethingEmbedded(); 

public static class Initializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { 
    @Override 
    public void initialize(ConfigurableApplicationContext configurableApplicationContext) { 
    } 


} 

И в инициализации метода вы можете реализовать свою логику.