2010年8月30日 星期一

使用Junit測試Struts2 Action

Junit是開發Java程式常會使用到的unit test工具
最近剛好遇到要針對Struts2的action進行單元測試,於是便上網研究了一下順便作個心得
共計使用到下列三各jar檔
Spring的core與test jar檔 (可於http://www.springsource.org/download下載)與struts2 junit plugin
範例可參考struts網站的doc
http://struts.apache.org/2.1.8/docs/testing-actions.html
範例說明如下:

//欲測試的action需extends StrutsTestCase
public class StrutsTestCaseTest extends StrutsTestCase {
ActionProxy proxy = getActionProxy("/設定的Namespace/Action名稱(如testAction.action或testAction.do此類)");
assertNotNull(proxy);
//再由proxy取得action
TestAction action = (TestAction) proxy.getAction();
assertNotNull(action);
//再透過action.method()可執行所要測試的method,就可透過assertEquals比較返回的結果
assertEquals("FD", action.getName());


而使用spring的人也可以在pom.xml中設定相依性即可


org.apache.struts
struts2-spring-plugin
STRUTS_VERSION


此外順便列出可能使用到的物件
MockHttpServletRequest request,
MockHttpServletResponse response
與MockServletContext servletContext

沒有留言: