TDD规则

Michael FeathersArtima自己的Blog 2005-9-9 发表了一篇A Set of Unit Testing Rules的文章,提出了如下的代码不是单元测试:

1.        访问数据库It talks to the database

2.        访问网络It communicates across the network

3.        访问文件系统It touches the file system

4.        不能和其他的单元测试代码同时运行It can't run at the same time as any of your other unit tests

5.        做特殊的事情运行测试的代码You have to do special things to your environment (such as editing config files) to run it.

使用一句话概括就是:把你的单元测试代码的逻辑和耗时的、与测试逻辑无关的代码分开;单元测试应该是纯粹的单元测试。

单元测试要严格遵守这些原则有时候很困难,需要变通的办法,我的想法是:

1.        测试逻辑概念函数和需要交涉的功能函数分开。如果一个测试逻辑概念函数,需要和文件、网络、数据库打交道,那么尽量的分开它们;

2.        把文件需要的内容以二进制的形式插入到代码中。这虽然很笨拙,但是消除了对文件的依赖。

3.        建立配置文件。有时候不得已还需要建立配置文件。

4.        使用错误的消息输出。一旦配置文件没有设定好,通过输出消息报告给用户。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值