您可以通过应用程序上下文环境在 spring 中设置活动配置文件。
由于StrutsTestCase
使用GenericXmlContextLoader
不可配置,您需要覆盖setupBeforeInitDispatcher
测试中的方法并使用一些上下文(例如XmlWebApplicationContext
),您可以在其中设置配置文件并调用refresh
.
@Override
protected void setupBeforeInitDispatcher() throws Exception {
// only load beans from spring once
if (applicationContext == null) {
XmlWebApplicationContext webApplicationContext = new XmlWebApplicationContext();
webApplicationContext.setConfigLocations(getContextLocations());
webApplicationContext.getEnvironment().setActiveProfiles("Prod", "bsi");
webApplicationContext.refresh();
applicationContext = webApplicationContext;
}
servletContext.setAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
applicationContext);
}
JUnit 4
由于您使用的是 JUnit 4,因此存在StrutsSpringJUnit4TestCase
抽象类。扩展它,您可以像在SampleTest
.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring-*.xml" })
@ActiveProfiles(profiles = { "Prod","bsi"})
public class SessionManagement extends StrutsSpringJUnit4TestCase<SomeAction>