Junit4使用汇总(四)spring+struts2

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

猜你喜欢

转载自ldaolong.iteye.com/blog/2176645
今日推荐