单元测试
来源:互联网 发布:编写程序软件 编辑:程序博客网 时间:2024/04/28 13:04
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,讲解了一个进行“自动化”测试的方法。
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 单元测试:
- 单元测试
- 单元测试
- 单元测试
- 单元测试
- 半夜发现蟑螂
- Smart Client高级开发
- 让女人看清自己
- 开篇语
- DBGrid数据导出到Excel表格
- 单元测试
- 为简历工作-增加就业“资本”~!(My Plan)
- 网络黑道常用之拼音缩写用语前十名
- 彩色光标
- 开发J2EE的最佳选择:Struts with Eclipse
- struts傻瓜式学习(一天篇) (2)(转载)
- 昨天搬家
- 因特网在线聊天协议(IRCP/IRC)--网络大典
- 关于eclipse的一些链接的收藏