我们在testDivide方法加入测试代码,分别测试三种情况:
a. 完全正确也没有可能出错的数据,如:9除3 结果必须等于3 b. 可能有问题的边缘数据,如:10除3 结果也必须等于3 c. 错误的数据,如:10除0 必须抛出异常 忽略testMultiple方法 代码如下:
@Test(expected=ArithmeticException.class) public void testDivide() { assertEquals(3,Math.divide(9,3)); assertEquals(3,Math.divide(10,3)); Math.divide(10,0); //除数不能为0,会抛出异常
}
@Ignore("忽略乘法测试")
@Test
public void testMultiple() {
}
说明:
Junit4为测试方法增加了判断异常的方式,避免了以前还要通过try/catch块捕捉异常再抛出的复杂方式,简单的这样声明“@Test(expected=ArithmeticException.class)”
Junit4就会检查此方法是否抛出ArithmeticException异常,如果抛出则测试通过,没抛出则测试不通过(@Test标签还有一些其他参数,例如超时测试,但是由于并不能准确反应实际时间,所以应用较少)
@Ignore标签会告诉Junit4忽略它所标注的方法,例如数据库不可用时可以用此标注标注一些测试数据库连接的方法来避免测试失败。
3) 运行测试
或者
系统会打开JUnit透视图,如果测试全部通过,则显示如下,颜色条为绿色:
我们将assertEquals(3,Math.divide(9,3));改成assertEquals(2,Math.divide(9,3));则显示如下,颜色条为红色:
可以对错误或者故障的地方进行追踪。
4) 创建测试套件
测试套件可以将多个测试用例合在一起测试,将相关的测试用例合成一个测试套件,在做一个修改后,只需要运行测试套件就可以,不需要运行每一个测试用例。 Junit4没有采用以前的套件测试方法,同样使用annotation的方式来进行。简单在你所要构建测试套件的包里创建一个文件,一般以包名+4Suite
下面我在上面的测试包中复制一下之前的测试类并且一个改名字叫做MathTestAnother,新建一个class类叫做Uitl4Suite,代码如下:
package org.bj.util;
import org.junit.runner.RunWith; import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses; /**
* @创建时间:May 9, 2015 * @描述: */
@RunWith(Suite.class)
@SuiteClasses({MathTest.class,
MathTestAnother.class})
public class Util4Suite {
}