亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Cactus
用Cactus來測試J2ee應用
作者:網絡轉載 發布時間:[ 2012/11/29 14:52:41 ] 推薦標簽:

unit是當前流行的測試框架,它能夠讓開發人員很方便的編寫測試單元,可以使他們"放心"地開發。但是現在很多的應用都是基于j2ee的,代碼都是在服務器端的容器里面運行,這個使測試帶來了一些麻煩。對于普通的jsp,servlet用Junit來測試好像已經不是那么方便,對于EJB來說,特別是2.0版本,很多接口都是Local Interface,沒有辦法進行分布式的測試。那么我們如何進行這些代碼的測試呢?Apache為我們提供了一個強大的工具 Cactus!它是一套簡單,易于使用的服務器端測試框架,可以使開發人員很輕松的測試服務器端的程序,他們會說:"哦,是這么簡單"。Cactus是Junit的一個擴展,但是它又和Junit有一些不同。Cactus的測試分為三種不同的測試類別,JspTestCase,ServletTestCase,FilterTestCase,而不是像Junit一種TestCase。Cactus的測試代碼有服務器端和客戶端兩個部分,他們協同工作。那我們為什么不用Junit來做測試呢?主要有一下幾個理由:

EJB2.0中的Local interface ,不允訊遠程調用。用Junit不好測試,而Cactus的redirector位于服務器端,可以和EJB運行在一個容器中,這使得它可以直接訪問Local Interface。

一般EJB或者servlet,jsp都是運行在服務器上,如果你使用junit測試的話,你的測試是在客戶端,這使的運行環境和測試環境處于不同的系統環境中,這個有時候會不同的測試結果。
在一個EJB的應用中,一般都會有一些前端應用來訪問EJB,例如:jsp,servlet,javabean。這意味著你需要一個測試框架來測試這些前端的組件。Cactus提供了所有這些組件的測試方法。哦,太棒了。
Cactus和ant很好的結合在一起,可以很容易的完成自動化測試,減少了很多工作量。當然,junit也提供這樣的支持。
前面是對Cactus作了一個大致的介紹,接下來我們用一個實際的例子來運用一下這個強大的測試框架。首先我們需要一個被測試的對象,在這里我們選用EJB2.0 CMP.我們做一個簡單的用戶管理。一下一些主要的代碼,來進行一些分析。

UserHome.java

package usersystem;

import javax.ejb.*;
import java.util.*;

public interface UserHome extends javax.ejb.EJBLocalHome {
public User create(String name, String password) throws CreateException;
public Collection findAll() throws FinderException;
public User findByPrimaryKey(String name) throws FinderException;
}
User.java
package usersystem;

import javax.ejb.*;
import java.util.*;
public interface User extends javax.ejb.EJBLocalObject {
public String getName();
public void setPassword(String password);
public String getPassword();
public void setUserInfo(UserInfo userInfo);
public UserInfo getUserInfo();
public void setName(String name);
}

UserInfoHome.java
package usersystem;

import javax.ejb.*;
import java.util.*;

public interface UserInfoHome extends javax.ejb.EJBLocalHome {
public UserInfo create(String name, String email, String address, String tel) throws

CreateException;
public UserInfo findByPrimaryKey(String name) throws FinderException;
}

這里有兩個Entity Bean用來創建用戶信息。他們之間的關系在xml部署描述文件中描述,他們是1對1的關系。

UserManagerLocal.java

package usersystem;

import javax.ejb.*;
import java.util.*;

public interface UserManagerLocal extends javax.ejb.EJBLocalObject {
public void addUser(String name, String password, String email, String address, String tel);
public Collection findAll() ;
public void delAll();
public void delByName(String name);
public User findByName(String name) ;
}

UserManagerBean.java

package usersystem;

import javax.ejb.*;
import javax.rmi.PortableRemoteObject;
import javax.naming.*;
import java.util.*;

public class UserManagerBean implements SessionBean {
SessionContext sessionContext;
public void ejbCreate() throws CreateException {
/**@todo Complete this method*/
}

public void ejbRemove() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}

/**
* 添加用戶
* @param name 用戶姓名
* @param password 密碼
* @param email 電子郵件
* @param address 地址
* @param tel 電話
*/
public void addUser(String name, String password, String email, String address, String tel) {

try{
UserHome userHome=getUserHome();
User user=userHome.create(name,password) ; //create user entity
UserInfoHome userInfoHome=getUserInfoHome();
UserInfo userInfo=userInfoHome.create(name,email,address,tel) ;// create userinfo

entity
user.setUserInfo(userInfo) ;

}catch(Exception e){

throw new javax.ejb.EJBException (e.toString());
}

}

/**
* 返回UserHome接口
* @return userHome
*/
private UserHome getUserHome(){

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 精品一区二区三区影院在线午夜 | 欧洲1站2站3站| 三级伦理片高清在线观看播放 | 尼龙丝袜社区aaaaa视频 | 午夜影院性| 天天爱夜夜操 | 国产高清精品久久久久久久 | 日韩理论片在线观看 | se01在线看片 | 伊人精品影院一本到欧美 | 十八成人网 | 动漫成年美女黄漫网站在线看 | a级高清观看视频在线看 | 欧美日本成人 | 国产成人在线视频免费观看 | 免费黄在线 | 在线观看a视频 | 成在线人免费视频一区二区三区 | 欧美日韩国产一区二区三区 | 波多野结衣一区免费作品 | 最近2019视频免费观看8 | 国产一卡二卡三卡 | 黄网站免费视频 | 黄网在线观看网址入口 | 日韩欧美成人乱码一在线 | 99在线精品视频免费观里 | 日本免费一二区视频 | 在线视频一本 | 999这里只有精品 | 日韩毛片在线影视 | 日韩国产欧美一区二区三区在线 | 久久综合综合久久 | 波多野结衣在线免费观看视频 | 老太性开放bbwbbwbbw | 亚洲图片 中文字幕 | 168黄色网 | 无遮挡动漫黄漫网站在线观看 | 欧美日韩国产成人高清视频 | 怡春院日本一区二区久久 | 在线日本人观看成本人视频 | 黄 片在线影院 |