Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 对nunit很失望
【标  题】:对nunit很失望
【关键字】:nunit
【来  源】:http://jjstar.cnblogs.com/archive/2004/07/14/24002.html

对nunit很失望

Your Ad Here

很多人都介绍了.net下开发的十个必备工具,其中单元测试工具就是nunit。不知道有多少人对它有实际的项目经验;我经过一段时间的使用,对它的一个缺陷很恼火,下面详细介绍一下:
在数据库相关项目的单元测试代码中,需要测试增删改的功能;然而这会使各种功能测试互相影响,破坏测试数据库,产生垃圾数据,使每次单元测试运行在一个未知的状态下,总之是一件很糟糕的事情。
针对这种情况,通常的解决方案是准备一个测试用数据库,每次单元测试结束后,还原这个数据库,这只能称为一种办法,但不漂亮。
我通过查阅资料,发现了另外的一种很clean的解决方案:“利用com+的自动事务!”
基本处理方法是这样的:
1、写一个从ServicedComponent继承的类,声明TransactionOption.Required,并在TearDown方法中回滚事务,具体代码如下

using System;
using NUnit.Framework;
using System.EnterpriseServices;
namespace TransactionTesting
{
[TestFixture]
[Transaction(TransactionOption.Required)]
public class DatabaseFixture:ServicedComponent  
{
[TearDown]
      
public void TransactionTearDown()
      
{
            
if(ContextUtil.IsInTransaction)
            
{
                  ContextUtil.SetAbort();
            }

      }

}

}


2、修改原有的单元测试代码,使所有的测试都从刚刚写好的类继承

看了这个方法后,我非常激动,真是nice啊!可是经过仔细测试,却发现nunit对这个方法的支持非常不好,运行时会抛出很多异常,难道反射调用com+存在天生的缺陷?(我没看nunit的代码,瞎猜的)

 

我常用的伎俩:查看页面中元素的属性值:【上一篇】
运行时自定义程序界面及简单业务逻辑(由来篇):【下一篇】
【相关文章】
  • 使用nunit时应该注意到的一件事
  • NDoc for NUnit (初步构想)
  • NUnitDoc 继续构想(2)
  • c#中使用nunit支持数据库单元测试
  • 用NUnit2.1简单实现.net的测试驱动开发(TDD)
  • 【随机文章】
  • [导入]再谈普元EOS中的数据总线
  • 终于又把FreeBSD装上了
  • 在liunx下构建磁盘阵列(下篇)
  • ubuntu 快速更新
  • 简单的滚屏---curses
  • photoshop
  • .NET中的CodePage属性参考列表
  • 监测snapshot运行的procedure
  • [转载]自己做QQ代理服务器
  • 内核空间与用户空间通信
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.