国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JBuilder2005單元測試之創建測試固件

2019-11-17 06:16:29
字體:
來源:轉載
供稿:網友
  在測試用例中通過setUp()、tearDown()創建測試固件,只能使這個測試固件在單個測試用例的不同測試方法中共用,假如有多個測試用例都需要使用相同的測試固件,就需要將測試固件抽取到一個獨立的類中。JBuilder提供了3個預定義的測試固件類,它們分別是:

  ·JDBC測試固件(JDBC Fixture):用于獲取數據庫連接的測試固件,用戶僅需要通過設置一些數據庫信息,就可以用方便的方法獲取數據連接。

  ·JNDI 測試固件(JNDI Fixture):用于模擬從JDNI環境中獲取對象的測試固件。

  ·比較測試固件(Comparision Fixture):將測試輸出到外部文件中,以便第二次測試時進行比較。

  ·自定義測試固件(Custom Fixture):用戶自定義的測試固件。

  假如對JUnit的框架結構非常了解,也許這些JBuilder擴展的測試固件對你來說意義并不大,它們無非是構建一些常見的測試環境罷了,你完全可以自己編寫。在本節里,我們介紹兩個測試固件。

  JDBC測試固件

  假如你的工程中已經有一個獲取數據連接的公共類,你也有必要構建一個JDBC測試固件,因為JDBC測試固件不但可以直接通過創建測試用例的向導直接指定,此外,JDBC測試固件還提供了許多面向測試的方法。

  為了創建JDBC測試固件,我們先創建一個JDataStore的數據庫,其數據文件位于<chapter25工程目錄>/db/hr.jds,這個數據庫的用戶名和密碼是:sysdba/123456。hr.jds數據庫中有一張EMPLOYEE的表,其結構如下所示:

JBuilder2005單元測試之創建測試固件
圖 錯誤!文檔中沒有指定樣式的文字。EMPLOYEE表的數據

  EMPLOYEE有3個字段,分別是ID、NAME和AGE,分別是String、String和int類型,并按上圖所示填入3條記錄。

  為了演示JDBC測試固件的具體使用,我們設計兩個業務類:Employee和EmployeeDAO,爾后用JDBC測試固件為測試EmployeeDAO提供數據連接。這兩個類的代碼如下:

  代碼清單 錯誤!文檔中沒有指定樣式的文字。Employee.java

1. package chapter25.db;
2. public class Employee
3. {
4.  PRivate String id;
5.  private String name;
6.  private int age;
7.  public Employee(String id, String name, int age) {
8.   this.id = id;
9.   this.name = name;
10.  this.age = age;
11.  }
12.  public String getId() {
13.   return id;
14.  }
15.  public String getName() {
16.   return name;
17.  }
18.  public int getAge() {
19.   return age;
20.  }
21.  public boolean equals(Object o) {
22.   if (o instanceof Employee) {
23.    Employee e1 = (Employee) o;
24.    return id.equals(e1.getId()) && name.equals(e1.getName()) &&age == e1.getAge();
25.   } else {
26.    return false;
27.   }
28.  }
29. }
  Employee類用于描述EMPLOYEE表的一條記錄,該類訪問數據庫的EmployeeDAO代碼如下所示:

  代碼清單 錯誤!文檔中沒有指定樣式的文字。EmployeeDAO.java類

1. package chapter25.db;
2. import java.sql.*;
3. public class EmployeeDAO
4. {
5.  private Connection conn;
6.  public EmployeeDAO(Connection conn) {
7.   this.conn = conn;
8.  }
9.  public Employee findById(String id) throws SQLException
10.  {
11.   String sqlStr = "select * from employee where id ='"+id+"'";
12.   Statement stat = conn.createStatement();
13.   ResultSet rs = stat.executeQuery(sqlStr);
14.   if (rs.next()) {


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢龙县| 阿拉善右旗| 平顺县| 南溪县| 昆山市| 娄烦县| 泾阳县| 鹤山市| 洪泽县| 岱山县| 伊川县| 麟游县| 凌云县| 永德县| 黄浦区| 龙胜| 元朗区| 北碚区| 鹤山市| 衡南县| 本溪| 株洲市| 平原县| 广南县| 灵寿县| 启东市| 邵东县| 忻城县| 白水县| 贞丰县| 云浮市| 丹巴县| 郑州市| 汉阴县| 雷波县| 昔阳县| 建瓯市| 崇仁县| 卢氏县| 珠海市| 昌宁县|