1,准备工作:
继承 StrutsSpringJUnit4TestCase
重写 setupBeforeInitDispatcher
具体开始实现时
获取bean: applicationContext.getBean("companyInfoDao")
获取Action: getActionProxy("/bns/company/CompanyInfo/companyGrade.do")
设置参数: request.setParameter("companyId", "17");
部分实际代码:
@Override
protected void setupBeforeInitDispatcher() throws Exception {
GenericXmlContextLoader xmlContextLoader = new GenericXmlContextLoader();
applicationContext = xmlContextLoader
.loadContext(files);
//aCtx = applicationContext;
this.servletContext.setAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
applicationContext);
}
@Test
@TestCaseMetadata(title = "test junit action", owner = "lidao")
public void testExecute() throws Exception {
ActionProxy proxy = null;
CompanyInfoAction test = null;
applicationContext.getBean("companyInfoManager");
request.setParameter("companyId", "17");
// /Manufacture/bns/company/CompanyInfo/list.do
proxy = getActionProxy("/bns/company/CompanyInfo/companyGrade.do");
test = (CompanyInfoAction)proxy.getAction();
String result = proxy.execute();
assertEquals("/bns/company/CompanyInfo/companyGrade.jsp", result);
request.getAttribute("GSON_RESULT_OBJECT");
// assertEquals("test...", test.getParam());
}
网上看还有一种写法更简单如下
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({
"classpath:conf-spring/spring-dao.xml",
"classpath:conf-spring/spring-service.xml",
"classpath:conf-spring/spring-controller.xml"
})
@TransactionConfiguration(transactionManager="transactionManager") //可选,默认就是这个
@Transactionnal
public class BaseSpringTestCase{
}