测试驱动开发-实用指南1

  前两章:

      1. 在程序刚开始设计时,不要太早引入模式,而应该在重构中,以模式为目标。

       2. 对测试代码的重构:

           1). 使用恰当的断言,如两个数值相等使用assertEquals; 要断言一个值为false,使用assertFalse.

           2). 时刻将test的预设环境fixture整合到单一的setup,所以测试累应该使用功能,而不是结构(被测试类)来组织,对于结构关系,可使用testSuite实现。

           3)对不满足普遍使用的fixture进行拆分

           4)不要让test方法和testCae名称之间有重复的信息,为TestCase命名要反映其预设环境,为方法命名要反映其测试的行为

           5) 使用ant或xml组织测试类间的层次关系。

   第四章:

      1. 测试的一些建议

           1)从简单测试开始

           2)在测试中使用message参数提供失败信息的解释,说明失败的条件

           3)保持测试方法简单,让断言数最少

           4)尽早测试边界条件

           5)接口生命不超过三个比较好

           6)避免在测试中使用System.out和System。err, 如果要产生日志信息,则可采用Setup和tearDown重定向到文件   

           7)编写测试从断言开始

           8)对于网络环境和数据库使用mock实现

    第五章: JUnit扩展

       1. 标准扩展,在junit.extension包中。

           1)ActiveTestSuite 编写以实时方式进行交互的测试,每个测试都在自己的线程中运行,知道所有测试都结束才算完成。

           2)TestDecorator:可以继承TestDecorator重载run方法,完成在basicRun调用前后执行的工作

           3)RepeatedTest: 使用这个类让一个Test运行指定的次数

           4)TestSetup:为一整套测试(一个TestSuite)中执行一次性的setUp和tearDown

       2. JunitPerf使用TimedTest执行性能测试(测试测试在多长时间完成的断言);使用LoadTest执行扩展性测试(N个人同时执行时在多长时间完成) ;     通过装饰HttpUnit度量web页面性能;装饰Cactus测试servlet或EJB性能;

       3. XMLUnit:对产生和接收xml消息的系统进行测试,可以对以下内容断言:两端xml之间的差异;一段xml的有效性;通过xslt转换xml后的输出结果;对一段xml计算xpath表达式的结果;通过dom遍历一段xml中的各个节点。

     4. DBUnit :DBUnit的设计理念就是在测试之前,备份数据库,然后给对象数据库植入我们需要的准备数据,最后,在测试完毕后,读入备份数据库,回溯到测试前的状态;

   参考:http://hi.baidu.com/renyangok/blog/item/ed668f3400358c1690ef3991.html/cmtid/aa41dc89dad10e9aa5c27265

    第六章:模拟对象

       模拟对象的用途:

           1)由内到外利用测试驱动开发,通过对模拟对象设定期望值,对正在开发的代码提供特定的信息

           2)推迟必需的类实现,如尚未编写但正开发的代码需要与之交互

           3) 提倡使用接口,这样对每个接口才好设计模拟对象

           4)用来测试不太可能出现的情况

     可实现的功能:

           1)每次调用返回不同的值

           2)监测模拟对象的调用情况,如:参数和调用个数

 

 

     下面将开始 测试驱动开发的实战了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值