一篇很好的在eclipse中使用junit4教程
?
@Test(timeout = 1000)
public void squareRoot() ...{
???????calculator.squareRoot(4);
??????? assertEquals(2,calculator.getResult());
}
?
?
三、 测试异常
calculator.divide(0);
四、 ????Runner (运行器)
五、 参数化测试。
public voidclearCalculator() ...{
}
?
public void square1() ...{
??????? calculator.square(2);
??????? assertEquals(4,calculator.getResult());
}????
?
@Test???
public void square2() ...{
??????? calculator.square(0);
??????? assertEquals(0,calculator.getResult());
}
??? @Test???
public void square3() ...{
??????? calculator.square(-3);
??????? assertEquals(9,calculator.getResult());
}
private int param;
private int result;????
?
@Parameters???
public static Collection data() ...{
??????? returnArrays.asList(new Object[][]...{
? ??????????????...{2, 4},
??????????????? ...{0, 0},
??????????????? ...{-3, 9},
??????? });
}
?
//构造函数,对变量进行初始化
public SquareTest(int param, int result) ...{
??????? this.param = param;
??????????? this.result = result;
}
?
@Test???
public void square() ...{
???????calculator.square(param);
??????? assertEquals(result,calculator.getResult());
??? }
六、 打包测试。
通过前面的介绍我们可以感觉到,在一个项目中,只写一个测试类是不可能的,我们会写出很多很多个测试类。可是这些测试类必须一个一个的执行,也是比较麻烦的事情。鉴于此,JUnit为我们提供了打包测试的功能,将所有需要运行的测试类集中起来,一次性的运行完毕,大大的方便了我们的测试工作。具体代码如下:
?
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
?
@RunWith(Suite.class)
@Suite.SuiteClasses(...{
???????CalculatorTest.class,
???????SquareTest.class
???????})
?
public class AllCalculatorTests ...{}
?
大家可以看到,这个功能也需要使用一个特殊的Runner,因此我们需要向@RunWith标注传递一个参数Suite.class。同时,我们还需要另外一个标注@Suite.SuiteClasses,来表明这个类是一个打包测试类。我们把需要打包的类作为参数传递给该标注就可以了。有了这两个标注之后,就已经完整的表达了所有的含义,因此下面的类已经无关紧要,随便起一个类名,内容全部为空既可。
?