分享
 
 
 

JBuilder2005单元测试之创建测试固件

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

在测试用例中通过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()) {

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有