基本代码的详细介绍。此文章是对软件测试里的基本代码的详细介绍,有兴趣的同学可以学习一下。
正如前面文章所述,一个测试框架可以分为以下几个步骤。
(1)设置环境(通过@Before标注)。
(2)运行测试(通过@Test标注)。
(3)结果判断(通过断言API)。
(4)清理环境(通过@After标注)。
1.包含必要的Package
import static org.junit.Assert.*;
assertEquals是Assert类中的一系列的静态断言方法,一般的使用方式是Assert. assertEquals(),但是使用了静态包后,前面的类名就可以省略了,使用起来更加方便。比如。
assertEquals(8,calculator.getResult());
显而易见,assertEquals函数的主要功能是实现断言的功能(断言API是测试框架内判断测试结果是否符合预期结果的一类API)。
2.测试类的声明
测试类是一个独立的类,没有任何父类。测试类的名字也可以任意命名,没有任何局限性。所以,不能通过类的声明来判断它是不是一个测试类。测试类与普通类的区别在于它内部方法的声明。
3.创建一个待测试的对象
要测试哪个类,要创建一个该类的对象。为了测试案例2-1中的Calculator类,必须创建一个Calculator对象。
private static Calculator calculator = new Calculator();
4.测试方法的声明
在测试类中,并不是每个方法都用于测试,必须使用“标注”来明确表明哪些是测试方法。“标注”也是JDK5的一个新特性,用在此处非常恰当。可以看到,某些方法的前面有@Before、@Test、@Ignore、@After等字样,这些就是标注,以一个“@”作为开头。第2.1.2节开始的描述的@Before、@Test、@After对应于。
(1)标记@Before:设置环境。
(2)标记@Test:运行测试。
(3)标记@After:清理环境。
这个方法的前面使用@Test标注,表明这是一个测试方法。对方法的声明,有如下的要求。
名字可以随便取,没有任何限制。
返回的值必须为void类型。
不能有任何入参。
如果违反这些规定,会在运行时抛出一个异常。
@Test
public void testSubstract() {
calculator.substract(10,2);
assertEquals(8,calculator.getResult());
}
在测试方法中调用substract函数,将10减去2,期待的结果应该是8。如果最终的实际结果也是8,则说明substract函数是正确的,反之说明它是错误的。
assertEquals(8,calculator.getResult()):是断言函数,用来判断期待结果和实际结果是否相等,第一个参数填写期待结果,第二个参数填写实际结果,也就是通过计算得到的结果。这样写好后,JUnit会自动进行测试,并把测试结果反馈给用户。