.NET中的TDD(2)

发表于:2011-11-23来源:未知作者:领测软件测试网采编点击数: 标签:tdd
当然测试是不关心我们用什么技术实现方法的,它只关系输入和输出。 这时我们再运行测试,会发现测试通过了,这时我们叫做绿。 可能有的人发现,在

  当然测试是不关心我们用什么技术实现方法的,它只关系输入和输出。

  这时我们再运行测试,会发现测试通过了,这时我们叫做“绿”。

  可能有的人发现,在这个测试中,只能测一个数据,没有代表性,如果要测多个数据,还得一个一个换id值和expected值。是的,这是一个头痛的事,得想们办法来解决。

  正好,微软有提供数据驱动的单元测试,什么意思呢?就是可以把id和expected的值保存在数据源中,然后批量测试。如果全通过说明这个方法实现的没问题,如果有错,也可以针对性的能找出什么数据使GetRecord方法报错的。这个东西很不错。

  首先来构建一个数据源,XML是个不错的选择,新建一个RecordExistTestCase.xml文档,内容如下

 

  1 <?xml version="1.0" encoding="utf-8" ?>
  2 <DataSourses>
  3   <pic>
  4     <id>0</id>
  5     <value>false</value>
  6   </pic>
  7   <pic>
  8     <id>-1</id>
  9     <value>false</value>
  10   </pic>
  11   <pic>
  12     <id>1</id>
  13     <value>true</value>
  14   </pic>
  15 </DataSourses>
  16

  当然你还可以添加你以为好的测试用例。

  再改造一下测试方法

 

  1 [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\RecordExistTestCase.xml", "pic", DataAccessMethod.Sequential)]
  2   [ DeploymentItem("TestDataOperate\\RecordExistTestCase.xml")]
  3   [ TestMethod()]
  4         public void GetRecordTest()
  5   {
  6 ……
  7 }
  8

  OK,现在就要以用上面xml里的数据来批量测试了。

  测试通过来,接下来就要程序员来整理一下自写的代码了,比如书写规范问题,方法是否冗余重复,注释是否完善等。也就是所说的重构了。

  到此,一个TDD cycle就完成了,现实的cycle可能更复杂,这里只是对单个测试条目单个方法进行说明的。

  TDD更适合在敏捷的开发中去用,比如XP,虽然scrum是侧重管理和组织,也能很好的溶入TDD。

原文转自:http://www.ltesting.net