程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> JBuilder2005單元測試之創建測試固件

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

編輯:JAVA編程入門知識
  在測試用例中通過setUp()、tearDown()創建測試固件,只能使這個測試固件在單個測試用例的不同測試方法中共用,假如有多個測試用例都需要使用相同的測試固件,就需要將測試固件抽取到一個獨立的類中。JBuilder提供了3個預定義的測試固件類,它們分別是:
  
   <!-- frame contents --> <!-- /frame contents -->   ·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的表,其結構如下所示:
  
  
  圖 錯誤!文檔中沒有指定樣式的文字。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()) {
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved