首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

JBuilder 2005單元測試:測試固件進階應用與JDBC實戰

     編輯:Java 程式設計入門

測試固件的層次與複用

單一測試案例中透過setUp()/tearDown()建立固件,僅限該案例內部複用。多測試案例共享固件時,需抽取至獨立類別。JBuilder預定義四種固件類別:

  • JDBC固件:資料庫連線管理,設定資訊即可便捷取得連線
  • JNDI固件:模擬JNDI環境物件查詢
  • 比較固件:測試輸出導出檔案,支援回歸比對
  • 自訂固件:開發者自行擴展

JDBC測試固件深度實戰

即使專案已有資料庫連線工具類,JDBC固件仍具優勢:向導整合、提供面向測試的豐富方法。

環境建置

  • 資料庫:JDataStore,檔案db/hr.jds
  • 帳號:sysdba/123456
  • 資料表:EMPLOYEE (ID varchar, NAME varchar, AGE int),預載3筆測試資料

業務類別設計

// Employee.java - 實體類別
package chapter25.db;
public class Employee {
    private String id, name;
    private int age;
    // 建構子、getter、equals()... 略
}

// EmployeeDAO.java - 資料存取物件
package chapter25.db;
import java.sql.*;
public class EmployeeDAO {
    private Connection conn;
    public EmployeeDAO(Connection conn) { this.conn = conn; }
    
    public Employee findById(String id) throws SQLException {
        String sql = "SELECT * FROM employee WHERE id = ?";
        try (PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setString(1, id);
            try (ResultSet rs = stmt.executeQuery()) {
                if (rs.next()) {
                    return new Employee(rs.getString("ID"), 
                                       rs.getString("NAME"), 
                                       rs.getInt("AGE"));
                }
            }
        }
        return null;
    }
}

採用PreparedStatement防止SQL注入,try-with-resources自動關閉資源,展現現代Java最佳實踐。

JDBC固件配置與使用

在JBuilder中建立JDBC固件,設定驅動程式、URL、帳號密碼。測試案例自動注入Connection物件,DA0建構子接收連線,實現測試與業務邏輯解耦。固件還提供commit()/rollback()等事務控制方法,支援複雜測試場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved