首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室软件测试频道
IT教育热线
 
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试技术 >> 单元测试 >> 文章正文

数据库程序里的单元测试

文章来源中国软件测试 作者佚名 更新时间2008-5-9 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

  4. 一个发布数据库,或称集成数据库,用来在正式发布前进行一系列测试,从而确保对所有本地数据库的修改都得到确认。如果你一个人开发,你可以省略这个数据库,但你必须确保所有对数据结构和存储过程的修改都在实际使用数据库中得到确认。在有多个数据库的情况下,你要确保不同数据库间结构的同步:如果你在测试数据库中改变表的定义或存储过程,你必须记得在实际使用的服务器上进行同样的修改。发布数据库的作用就是提醒你进行这些修改。另外,我发现如果代码控制系统能将提交时的注释用邮件形式自动发给整个开发组,那将给团队开发带来较大帮助。CVS就能做到这一点,我希望你能利用这一功能。
 
  五、 在合适的数据库中进行测试在这种情况下,你必须连接正确的数据库。在实际使用数据库中进行测试有可能删除所有的有用数据,这点令我十分害怕。
 
  有几种办法能避免此类悲剧的发生。例如,比较普遍的做法是将数据库连接设置记录在初始文件中,从而明确哪一个是测试数据库。你也可以通过初始文件进行本地数据库的测试,而用其他指定方法连接实际使用数据库。
 
  在java代码中,初始文件可能如下所示;myapp.db.url=jdbc:mysql://127.0.0.1/mydatabase这一连接字符串用来连接数据库。你可以添加第二个连接字符串来区分测试数据库:myapp.db.url=jdbc:mysql://127.0.0.1/mydatabase myapp.db.testurl=jdbc:mysql://127.0.0.1/my_test_database在测试代码中,你可以检查并确保在连接到测试数据库后应用程序才能继续运行:
 public void dbSetUp()
{
String test_db = InitProperties.get("myapp.db.testurl");
String db = InitProperties.get("myapp.db.url");
if (test_db == null)
abort("No test database configured");
if (test_db.equals(db))
{
// All is well: the database we''re connecting to is the
// same as the database identified as "for testing"
}
else
{
abort("Will not run tests against a non-test database");
}
}
  另一个技巧是,如果你有一个本地测试数据库,测试程序能通过提供IP地址或主机名进行检测。如果不是“localhost/127.0.0.1”,这就有连接在实际使用数据库上进行测试的风险。
 
  六、 关于测试日期的体会如果你想存储日期信息,你大概想确认你存的日期信息是否正确。请注意以下几点。
 
  首先先问自己,是谁创建该日期。如果是你的应用程序,那验证比较简单,因为你可以通过查看数据库中的具体日期进行比较。如果是数据库本身创建该日期,可能作为一个缺省字段,那你可能就会有些问题。例如,你能确保你代码所代表的时区和数据库的时区一致吗?从没有听说过数据库是以格林尼治标准时间为准显示时间和日期的。你能确保运行应用程序的计算机上的时间和数据库所在计算机上的时间保持一致吗?如果不是,你必须在进行时间的比较时留出一定的误差。
 
  如果你遇到这些情况,有些事是你可以做的:如果你预先知道所用的时区,在测试前将所有日期和时间全部转换成那个时区的日期和时间。
 
  在比较时间时设立一定的误差,比如说几分钟、几小时或几个月。看上去缺乏说服力,但至少它能捕获诸如日期为空或1970年1月1日等错误。
 
  七、 总结在本文中,我想说:单元数据库测试是一件值得做的事;如果你能给一系列测试程序一个对应的数据库,测试本身并不非常可怕。
 

上一页  [1] [2] [3] [4] 下一页  

【责编:Luzi】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·企业网管如何部署你的网络监控系统?
 ·2008年软考官方指定教材及辅导书下载专题
 ·负载均衡技术方案攻略
 ·中国IT实验室2007年技术热点盘点
 ·利用路由实现VPN的配置方法
 ·JAVA开源技术介绍专题
 ·让你的局域网网速更上一层楼
 ·Linux Shell编程实用指南
 最近更新
 博客论点
 频道精选
 软件测试频道导航