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{ }