知识大全 JBuilder2005单元测试之创建测试固件

Posted 向导

篇首语:壮心未与年俱老,死去犹能作鬼雄。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JBuilder2005单元测试之创建测试固件相关的知识,希望对你有一定的参考价值。

JBuilder2005单元测试之创建测试固件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在测试用例中通过setUp() tearDown()创建测试固件 只能使这个测试固件在单个测试用例的不同测试方法中共用 如果有多个测试用例都需要使用相同的测试固件 就需要将测试固件抽取到一个独立的类中 JBuilder提供了 个预定义的测试固件类 它们分别是     ·JDBC测试固件(JDBC Fixture) 用于获取数据库连接的测试固件 用户仅需要通过设置一些数据库信息 就可以用方便的方法获取数据连接     ·JNDI 测试固件(JNDI Fixture) 用于模拟从JDNI环境中获取对象的测试固件     ·比较测试固件(Comparision Fixture) 将测试输出到外部文件中 以便第二次测试时进行比较     ·自定义测试固件(Custom Fixture) 用户自定义的测试固件     如果对JUnit的框架结构非常了解 也许这些JBuilder扩展的测试固件对你来说意义并不大 它们无非是构建一些常见的测试环境罢了 你完全可以自己编写 在本节里 我们介绍两个测试固件      JDBC测试固件    如果你的工程中已经有一个获取数据连接的公共类 你也有必要构建一个JDBC测试固件 因为JDBC测试固件不但可以直接通过创建测试用例的向导直接指定 此外 JDBC测试固件还提供了许多面向测试的方法     为了创建JDBC测试固件 我们先创建一个JDataStore的数据库 其数据文件位于 /db/hr jds 这个数据库的用户名和密码是 sysdba/ hr jds数据库中有一张EMPLOYEE的表 其结构如下所示      EMPLOYEE有 个字段 分别是ID NAME和AGE 分别是String String和int类型 并按上图所示填入 条记录     为了演示JDBC测试固件的具体使用 我们设计两个业务类 Employee和EmployeeDAO 尔后用JDBC测试固件为测试EmployeeDAO提供数据连接 这两个类的代码如下     代码清单 错误!文档中没有指定样式的文字 Employee java类     package chapter db;   public class Employee        private String id;     private String name;     private int age;     public Employee(String id String name int age)       this id = id;      this name = name;     this age = age;        public String getId()      return id;        public String getName()      return name;        public int getAge()      return age;        public boolean equals(Object o)      if (o instanceof Employee)       Employee e = (Employee) o;      return id equals(e getId()) && name equals(e getName()) &&age == e getAge();      else       return false;                Employee类用于描述EMPLOYEE表的一条记录 该类访问数据库的EmployeeDAO代码如下所示     代码清单 错误!文档中没有指定样式的文字 EmployeeDAO java类     package chapter db;   import java sql *;   public class EmployeeDAO       private Connection conn;    public EmployeeDAO(Connection conn)      nn = conn;        public Employee findById(String id) throws SQLException         String sqlStr = select * from employee where id = +id+ ;     Statement stat = conn createStatement();     ResultSet rs = stat executeQuery(sqlStr);     if (rs next())       return new Employee(id rs getString( name ) rs getInt( age ));     else      return null;                为了节省篇幅 我们仅提供一个访问数据库的访问方法 findById() 即通过id查找Employee对象     下面 我们利用JBuilder向导创建一个JDBC测试固件      . File >New >Test >在Test页中 双击JDBC Fixture图标 启动创建向导 其对话框如下所示    educity cn/img_ / / / jpg>  在Class name中为JDBC测试固件指定类名 HrJdbcFixture 接受其他的默认设置 按Next到下一步      .设置连接数据库的信息     在这步里 JBuilder提供了大部分数据库驱动程序的选择和连接信息设置 其对话框如下所示    educity cn/img_ / / / jpg>  ·Driver 选择borland databstore jdbc DataStoreDriver类 JDBC测试固件提供了对大多数数据库的支持 其中下拉框中暂不可用的数据库驱动器类显示为红色 你可以通过配置工程扩展类库使它们可用     ·URL 点击其后的…按钮 弹出Create URL for DataStore对话框 如下图所示    educity cn/img_ / / / jpg>  该对话框的设置内容会随着数据库类型的不同而变化 对于JDataStore数据库 该对话框提供了两个选项 如果数据库文件放在本机上时用第一个设置项 否则用第二个设置项 我们选择第一种选项 点击其后的…按钮 导航到 工程目录>/db/hr jds并选择之 按OK返回向导主对话框窗口     ·User name sysdba     ·Password     按对话框下的Test Connection测试连接 应该会返回一个Success信息报告连接测试成功 按Finish创建JDBC 测试固件 其代码如下所示     代码清单 错误!文档中没有指定样式的文字 HrJdbcFixture java     package fixture;   import java sql *;   import java io *;   import borland jbuilder unittest JdbcFixture;   public class HrJdbcFixture   extends JdbcFixture       public HrJdbcFixture(Object obj)      super();     super setUrl( jdbc:borland:dslocal:D:/JTJB /chapter /db/hr jds );     super setDriver( borland datastore jdbc DataStoreDriver );     super setUsername( sysdba );     super setPassword( );           public void setUp()      super setUp();           public void tearDown()      super tearDown();           JDBC测试固件承继了 borland jbuilder unittest JdbcFixture 这个类的重要方法包括     ·dumpResultSet() 将一个ResultSet导到一个Writer中 该方法接受两个参数 一个是ResultSet另一个是Writer     ·getConnection() 获取一个数据连接     ·runSqlBuffer() 执行缓存于StringBuffer对象中的SQL语句     ·runSqlFile() 执行保存在文件中的SQL语句 通过入参指定SQL文件的地址     ·setDriver() 设置JDBC驱动器     ·setUrl() 设置数据连接的URL     ·setUsername() 设置用户名     ·setPassword() 设置密码     提示     通过向导创建JDataStore的JDBC测试固件 虽然可以直接在对话框中选择 borland datastore jdbc DataStoreDriver驱动器 但运行这个JDBC测试固件时 JBuilder却报这样的错误信息 java lang ClassNotFoundException: borland datastore jdbc DataStoreDriver 原来是JBuilder通过向导创建JDBC测试固件时 并没有直接将驱动器类加载到工程类库中 所以你需要手工通过Project >Project Properties >Paths中 将JBuilder类库中名为JDataStore类库项加到工程类库中     由于EMPLOYEE表的数据可能会随着测试的进行不断更改 这样在测试时测试规则就很难制定 因为规则的制定必须基于一个假设的环境 举个例子 我们现在要测试findById()方法 就必须知道EMPLOYEE表中有哪些数据 所以在测试开始时就必须创建好一些特定的数据 由于JDBC固件可以执行保存在外部文件中的SQL 所以我们创建一个insert sql文件 将其放置在 工程目录>/db/insert sql下 文件的内容如下     delete from employee;insert into employee values( 大山 );insert into employee values( 英华 );insert into employee values( 柯明 );    运行这个SQL语句时 先清空EMPLOYEE表中的数据 然后再插入 条特定的记录 下面 我们来创建应用JDBC测试固件的TestEmployeeDAO测试用例类      .在编辑器中激活EmployeeDAO      .File >New >Test >双击Test Case图标启动创建测试用例的向导 在向导第 步为EmployeeDAO的创建一个名为TestEmployeeDAO的测试用例 这个测试用例对EmployeeDAO的findById()方法进行功能测试      .在向导的第 步选择测试固件 在向导对话框中我们前面创建的HrJdbcFixture已经出现在列表中 你也可以通过对话框的Add 和Remove选择不同的测试固件     cha138/Article/program/Java/hx/201311/25627

相关参考

知识大全 JBuilder2005单元测试之JUnit框架

JBuilder2005单元测试之JUnit框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 JBuilder2005单元测试之捆绑多个用例

JBuilder2005单元测试之捆绑多个用例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  目

知识大全 JBuilder2005创建开发文档之编写注释

JBuilder2005创建开发文档之编写注释  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  可

知识大全 用VS2012创建单元测试功能

用VS2012创建单元测试功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在VS中在类中点击

知识大全 苏教版六下数学评价手册第6、7单元测试答案

苏教版六下数学评价手册第6、7单元测试答案填空(1)正;反(2)四分之三;三分之四(3)八分之三;五分之二(4)二百五十六分之六十三(5)各个数量与总量之间的关系(6)26.7;28.5;30(7)四

知识大全 JBuilder2005 Struts深度体验之改造

JBuilder2005Struts深度体验之改造  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 JBuilder2005 Struts深度体验之概述

JBuilder2005Struts深度体验之概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 用JBuilder 2005实现重构之认识重构

用JBuilder2005实现重构之认识重构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为什

知识大全 JBuilder2005实现重构之分布式重构

JBuilder2005实现重构之分布式重构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于

知识大全 JBuilder2005实现重构之重构前的侦察

JBuilder2005实现重构之重构前的侦察  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  有