微信号:grzlwx

介绍:光荣之路官方资讯

测试驱动开发实践 - TDD(三)

2015-08-07 22:42 光荣之路


六.工序流程

下面我们来看看“韩梅梅”和“李雷”他们的工作步骤:

1. 首先,韩梅梅和李雷分析了他们各自的业务,然后韩梅梅写出了她需要测试用例,里面尝试使用“李雷”将要提供的方法,并通过此方法获取数据。当然这些代码第一次是测试不通过的,因为里面需要的实现类还没有写。这里我们使用到Moq这样一个模拟框架。

测试用例的运行结果,大家也是知道的,两个字“悲催”!

2. 然后, “李雷”那边开始了数据持久层接口的编写(IProductRepository),“韩梅梅”拿到李雷提供的接口后,完成了业务逻辑层(ProductService)的代码编写,完毕之后大吐一口气:“小伙子终于给力了一次!”。

A. “李雷”的代码如下,实际上“李雷”只是提供了接口(interface)给“韩梅梅”,他还并没有开始编写具体的实现类,但是韩梅梅已经可以通过该接口来工作了。

B. “韩梅梅”的服务类代码如下,她获取到“李雷”提供的数据持久层的接口后就开始欢快的编写代码,一切是那么的行云流水啊:

3. 接下来“韩梅梅”添加了各种需要的引用,再次运行起了测试用例,这次顺利的PASS了,心里那个激动,没的说!

4. 工作快要接近尾声,不过眼镜师兄提醒过“广大程序猿应该有高度的思想觉悟,不遗余力的提高代码质量”,为了达成这一目标,“韩梅梅”又开始了上跳下窜的“大家来找茬”。

她发现里面有段代码写的不好,循环太多,也不够整洁,她想优化下代码,又怕把写好逻辑弄坏了,不过现在有了测试用例,她不会再怕有这个问题,改错代码,测试用例自然也就无法通过。

  

再运行下测试用例,依然通过,此次代码优化完毕,如果还有新的问题可以在依葫芦画瓢的继续优化。

5.与此同时,“李雷”那边的数据持久层代码也差不多写好了,大家总得需要把代码合起来作“集成测试”,这个时候就要用到IOC框架来把“李雷”编写的数据层实例注入到业务逻辑层,注入实例使用的是Autofac这个IOC框架,我们这里使用构造函数注入,关于注入框架的更多信息,请读者G….gle。

至此,“韩梅梅”与“李雷”各自的工作都完成了,大家也不在互相说啥,各自都优化了各自的功能代码,快乐的工作继续进行着,我们的TDD讲解也到此结束!

参考文献:

  1. Test Driven Development: By Example – Kent beck

  2. Refactoring: Improving the Design of Existing Code – Kent beck

  3. The Art of Unit Testing: With examples in .NET – Roy Osherove

  4. Professional test driven development with C# - James Bender, Jeff McWherter

(完)

(作者:偶行势箭 来源:http://www.cnblogs.com/zhq3051/p/4596049.html)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 微软官方证实Win10将是Windows最后版本 宝贝,520可以不送礼物了吧 Cocos2d-x 3.0三消类游戏Sushi Crush(教程第二弹!) 浅谈算法和数据结构(1):栈和队列 世界上最好的编程语言是JavaScript?