Test-Driven Development A Practical Guide 测试驱动开发,实用指南,作者David Astels
测试驱动开发的主要思想是 测试先行,在写一个类的具体实现之前,先写类的测试代码,类的测试代码通过调用各种public 的方法,对类进行测试。在写测试代码的过程中,思考类的调用方法,也就是类的外在表现形式。
我觉得这种做法的很大一个好处是:因为设计一个类是从它的外部形态开始的,所以设计类的时候就会自然的考虑类的封装。
测试驱动开发采用的主要方法之一是重构(refactoring)。重构两个字的字面意思,并不能涵括它的具体涵义,在tdd中重构具体指什么,下面通过一个简单的例子来说明:
我们想编写一个math 类,来实现简单的加(sum)、减(minus)运算,首先我们编写math 类的初步测试方法。
public class testMath extends TestCase{
public void testSum(){
math math1 = new math ;
assertEquals("3加2应该等于5",5,math1.sum(3,2));
}
}
然后我们编写具体的math 类
public class math {
public int sum(int a,int b){
return 5;
}
}
运行测试,测试通过。但是很明显,sum方法的算法是不对的,这是因为测试不够全面。我们重新修改测试