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

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

如何在.NET中的实施测试驱动开发TDD

发布: 2010-11-22 10:48 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 102次 | 进入软件测试论坛讨论

领测软件测试网

新建一个类库项目,然后添加一个LINQ To SQL的子项,把下表拖放进LINQ To SQL面板。

数据表结构

数据表中数据

然后在类库的CS文件中,添加入下代码:

1 public bool GetRecord(int id)

2 {

3 DataClasses1DataContext DCDC = new DataClasses1DataContext("server=.;database=mytestdb;uid=sa;pwd=sa;");

4 if (DCDC.GetTable().Where(record=>record.ID ==id).Count() ==1)

5 {

6 return true;

7 }

8 else

9 {

10 return false;

11 }

12 }

13

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

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

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

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

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

1

2

3

4 0

5 false

6

7

8 -1

9 false

10

11

12 1

13 true

14

15

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。

延伸阅读

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

22/2<12

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

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