單元測試Struts2的Action(包含源碼)

來源:互聯網
上載者:User

很久沒有從頭搭建Struts2的環境了。最近,認真實踐了單元測試Struts2、Spring等Java項目。

今天特意寫的是單元測試Struts2的Action,遇到了不少問題,果然是實踐出真知啊。

從搭建環境、寫代碼到寫這篇文章,一共花了90分鐘。

特別說明:本文是原創,搭建環境、寫代碼、運行,都是實踐並且正確的。

本文是靠譜的,而非簡單的複製-粘貼。

1.建立工程,加入相關jar包。

  struts.core等struts自己的jar包

  spring-core-3.2.0.RELEASE.jar

(用到了裡面的一些類,比如看起來挺奇怪的,測試Struts2怎麼和Spring扯上關係了。

沒有這個包,會報錯java.lang.NoClassDefFoundError: org/springframework/core/io/ResourceLoader)

spring-test-3.2.3.RELEASE.jar

Junit的jar包

 Tomcat的Server Rumtime lib。

2.建立Action。

public class UserAction {  public String list(){  return "success"; }} 


3.建立單元測試。

package unittest; import org.apache.struts2.StrutsTestCase;import org.junit.Test; import action.UserAction; import com.opensymphony.xwork2.ActionProxy; public class ActionUnitTest extends StrutsTestCase { // 重寫父類方法,指定設定檔的名字 protected String[] getContextLocations() {  return new String[] { "struts.xml" }; }  @Test public void testExecute() throws Exception {  ActionProxy proxy = getActionProxy("/unitTest");  UserAction test = (UserAction) proxy.getAction();  assertNotNull(test);  String result = proxy.execute();  assertEquals("success", result); }} 


4.Struts配置。

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC          "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"          "http://struts.apache.org/dtds/struts-2.1.dtd"><struts>  <!– Development Mode –> <constant name="struts.devMode" value="true" />  <package name="manager" namespace="/" extends="struts-default">//不是default   <action name="unitTest" class="action.UserAction" method="list">   <result name="success">unitTest.jsp   </result>  </action>  </package></struts> 


5.訪問web頁面測試。

 需要在Web.xml中增加

<filter>  <filter-name>struts2</filter-name>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>*.action</url-pattern> </filter-mapping> 


訪問URL:http://localhost:8080/Struts2UnitDemo/unitTest.action

6.說明

源碼CSDN下載:http://download.csdn.net/detail/fansunion/6332115 (免積分)

有問題,可以留言,或加入群或者QQ。我抽空回覆。

原文參見:http://FansUnion.cn/articles/2545

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.