快速业务通道

JBuilder 2005单元测试之创建测试固件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

JBuilder 2005单元测试之创建测试固件

时间:2009-10-30 天极

在测试用例中通过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的表,其结构如下所示:

图 错误!文档中没有指定样式的文字。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()) { 15.return new Employee(id,rs.getString("name"),rs.getInt("age")); 16.}else{ 17.return null; 18.} 19.} 20.}

JBuilder 2005单元测试之创建测试固件(2)

时间:2009-10-30 天极

为了节省篇幅,我

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号