单元测试

原创 2004年10月25日 08:44:00

TheServerSide.Net上有一篇不错的文章,“10 Ways to Make Your Code More Testable”(10种让你的代码更具可测性的方法),这10种方法中,有几项不但是让代码更具可测性的方法,也是写代码时必需遵循的基本Principla,但也有几项非常有意思的:

只要可行,就让方法返回一个值。这样不但可以让代码更加容易被测试,而且也更加容易让调用者了解它的运行状态。不过作者也说了这个方法并非是“非此即彼”,而是“as much as possible”。

对于牵涉到包含了数据库的操作,这篇文章提出的解决方法就是很常见的Mock Data Access Object,即在测试时使用一个并非真正去读写数据库的假数据存取对象,来模拟真正的DAO的行为。

说到牵涉到数据存取的测试,在单元测试领域这的确是一个容易让人挠头的问题。在这里我郑重推荐MbUnit这个工具,它内置了两种最常见的解决这个问题的方法,使我们的日子更轻松了。

1、RollBackAttribute,这个特性利用COM+的Transaction,将整个测试方法的操作置于一个事务里面,来达到自动回滚的目的。

[Test]
[RollBack]
public void TestMethod()

Roy Osherove一篇文章比较详细的对这种方法进行了描述。

2、完整恢复数据库,这个方法基于一种很简单的数据恢复方式:在某个地方(通常是测试开始前或结束后),让数据库根据我们提供的Backup文件自动恢复。

[TestFixture]
[SqlRestoreInfo("connectionstring","databasename",@"c:/db.bak")]
public class TestClass
{

    [Test]
    [RestoreDatabaseFirst]
    public void TestMethod()

“SqlRestoreInfo”特性提供了必要的连接字符串、数据库名,和数据库备份文件信息,“RestoreDatabaseFirst”特性指明了在执行测试方法前先用备份文件来恢复数据库。

最后,介绍一个系列文章,Automating Unit Testing With a Base Class Posts,讲解了一个进行“自动化”测试的方法。

单元测试规范

单元测试规范
  • iprettydeveloper
  • iprettydeveloper
  • 2017年02月15日 11:13
  • 1249

单元测试的基本准则

实施单元测试的时候, 如果没有一份经过实践证明的详细规范, 很难掌握测试的 “度”, 范围太小施展不开, 太大又侵犯 “别人的” 地盘. 上帝的归上帝, 凯撒的归凯撒, 给单元测试念念紧箍咒不见得是件...
  • hou549135295
  • hou549135295
  • 2016年05月12日 14:49
  • 916

ASP.NET MVC 5 (八) Visual Studio单元测试

这里记录如何使用Visual Studio的内置单元测试准备示例 创建单元测试项目 添加项目引用 添加单元测试 第一个单元测试 添加其他单元测试 运行单元测试并发现错误 实现特性 测试并修正代码准备示...
  • github_37410569
  • github_37410569
  • 2017年02月17日 22:31
  • 1032

用于web类库代码的单元测试

用于web类库代码的单元测试 最近把appcache的功能放到了公用类库中,写单元测试时发现不了 HttpContext,  代码如下: using System; using System.Coll...
  • huwei2003
  • huwei2003
  • 2015年12月23日 09:55
  • 1211

SSM整合&单元测试集成备忘

ssm整合   阅读原文请访问我的博客brightloong's blog  SSM框架,既是Sping + Spring MVC + Mybatis,本篇博文主要是作为本人的备忘,记录...
  • cl534854121
  • cl534854121
  • 2017年07月26日 10:18
  • 252

学习单元测试, 如何在开发过程中把单元测试也做了

17 希望能写质量更好的代码, 从功能角度看, 需要测试代码使它满足需求  18 重新看 http://diveintopython.org 的 13/14 章节, 学习在开发中用上单元测试。~ ...
  • u013015430
  • u013015430
  • 2014年05月13日 17:44
  • 740

VS2012添加单元测试

创建单元测试
  • u010158267
  • u010158267
  • 2015年03月06日 14:36
  • 2100

单元测试的主要内容

模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试 (1)模块接口测试:模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。模块接口测试也是集...
  • lluozh2015
  • lluozh2015
  • 2015年10月12日 20:50
  • 1232

java服务器端单元测试

大体有两种模式: 1.容器内测试(Jetty) 2.Mock测试(Jmock、easyMock),继承HttpServletRequest、HttpSession、HttpServletRespo...
  • gaolinwu
  • gaolinwu
  • 2012年02月27日 22:38
  • 934

单元测试--测试类的私有方法--反射

package com.paic.claimppt.common.biz.service.impl; import java.util.Arrays; import java.util.HashMa...
  • KinseyGeek
  • KinseyGeek
  • 2017年03月30日 21:13
  • 485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单元测试
举报原因:
原因补充:

(最多只允许输入30个字)