/2016-3-8整理=。=/
一、这本书的特点
这本书介绍的是测试驱动开发的编程技术,这本书主要采用TDD开发。TDD的过程:
1.编写符合单元测试的规格说明
2.测试失败(因为还没有写)
3.编写符合规格说明的代码
4.测试通过
5.重构代码
这种方法的优点显而易见,减少了bug的数量,而且代码很干净,虽然看起来慢,不过bug少了也算加快了速度。不过能否坚持使用就是问题了(比如我这种懒蛋)。
二、测试的方法
这本书中使用Junit3来进行测试(不过现在已经有Junit4了),下面介绍下简单的Junit3的使用
1.一个简单的测试
- 创建相应的测试类(应用TDD方法)
- 写出规格说明(下面代码中的testCreate函数)
package orz;
import junit.framework.TestCase;
public class TestStudent extends TestCase {
public void testCreate(){
final String name = "Hou xin";
Student stu = new Student(name);
assertEquals(name, stu.getName());
}
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
}
上面的代码肯定是无法编译过的,因为Student类和相应的函数还没有编写,所以下面开始编写相应的内容。
package orz;
public class Student {
private String name;
public Student(String name) {
this.name = name;
}
public String getName(){
return name;
}
}
运行测试类,可以看到测试通过。
package orz;
import junit.framework.TestCase;
public class TestStudent extends TestCase {
public void testCreate(){
final String name = "Hou xin";
Student stu = new Student(name);
assertEquals(name, stu.getName());
}
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
}
上面的代码肯定是无法编译过的,因为Student类和相应的函数还没有编写,所以下面开始编写相应的内容。
package orz;
public class Student {
private String name;
public Student(String name) {
this.name = name;
}
public String getName(){
return name;
}
}
几点说明:
- 所有的测试方法都必须以testxxx的形式命名
- 可以使用断言来判断程序是否正确
- 各个测试方法是独立运行的
- 在每个测试方法运行之前setUp方法,每个测试方法结束后运行tearDown方法
单个的测试类的介绍就结束了,下面介绍测试套件。
2.测试套件
创建一个AllTests的类,代码如下
package orz;
import junit.framework.TestSuite;
public class AllTests {
public static TestSuite suite(){
TestSuite suite = new TestSuite();
suite.addTestSuite(TestStudent.class);
return suite;
}
}
我们可以将多个测试加入到测试套件中,就可以一次执行多个测试类。suite方法的职责是创建一个测试类的套件,并返回这个套件。通过发送消息addTestSuite向套件中增加测试。
三、其他的知识
1.Arraylist
2.Date
3.Javadoc注释
本次完结~
*★,°*:.☆\( ̄▽ ̄)/$:*.°★*