• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

  Nunit中如何进行事务性单元测试

发布: 2009-12-18 10:36 | 作者: 不详 | 来源: 领测国际软件测试网采编 | 查看: 67次 | 进入软件测试论坛讨论

领测软件测试网

  Nunit中如何进行事务性单元测试  单元测试代码

  单元测试要求:单元测试方法并不真正去变更数据库,也就是说单元测试不依赖于数据库中的数据。那我们如何解决执行单元测试方法后,不变更数据库中数据呢?

  一般的解决方案有两种:

  1、 新建一个单元测试数据库,开发数据库与单元测试数据库分离,单元测试方法完全基于单元测试数据库。

  此中方法的优点是:,开发人员在开发期间不会对单元测试数据库中数据进行变更,也就不会影响单元测试方法 在任何时间执行。

  缺点:单元测试数据库和开发数据库同步问题,特别是对迭代式开发项目,数据库是根据需求在不断地跟进或者变更,同步问题成为了单元测试正常运行的瓶颈。

  2、 使用事务对单元测试方法的执行进行回滚。

  此种方法的优点:解决了方法一中缺点,不会出现数据库结构不同步的问题。

  缺点:在进行CRUD(Create/Read/Update/Delete)操作时,需要在单元测试方法中进行一些插入数据操作,从而保证单元测试与开发数据库的独立,造成了单元测试工作量增加。

  在实际的项目中,可以根据需要选择符合自己的解决方案,如果数据库结构在项目进入开发阶段已经确定,并且以后不会有变动,建议采用第一种方案,否则建议第二种方案。目前我们项目采用第二中方案。

  一、NUnit事务性单元测试

  那使用Nunit框架如果保证数据的会滚呢?这里我们使用了COM+事务。

  即System.EnterpriseServices;

  具体如下:

  ///

  ///单元测试基类,所有单元测试类都需要继承此类

  ///

  [TestFixture]

  [Transaction(TransactionOption.Required)]

  public class DatabaseFixture:ServicedComponent

  {

  public DatabaseFixture()

  {

  //

  // TODO: Add constructor logic here

  //

  }

  [TearDown]

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网