JUnit自动化单元测试(二):简单测试实例讲解

自上一篇博客起,我们现在有了测试类TestCalcuate,默认是这样的

package junit.demo;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestCalcuate {
    @Test
    public void testAdd() {
        fail("Not yet implemented");
    }

    @Test
    public void testSub() {
        fail("Not yet implemented");
    .....

首先注解@Test表示这个方法是需要JUnit测试的方法fail()函数的意思是测试失败,这就是为什么初始的测试类进行测试每个都会失败,因为方法里面的内容需要由我们自己写

现在我们简单写一个testAdd

package junit.demo;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestCalcuate {
    @Test
    public void testAdd() {
        Calcuate calcuate = new Calcuate(); //新建对象实例
        int result = calcuate.add(2, 3);    //进行add操作
        assertEquals(5, result);            //通过断言assertEquals看上面得到的结果是不是期望的结果
    }

    @Test
    public void testSub() {
        fail("Not yet implemented");
    .....

很好理解,要测试add方法,先创建对象,然后进行add操作,最后通过assertEquals断言看看得到的结果是不是我们期望的结果,此时再运行JUnit Test会发现testAdd成功,表示这个方法测试成功,和我们期望的一样。

接下来我们写testSub,聪明的人会发现,每个测试方法都要创建对象,一点都不人性,于是,就有了@Before和@After注解,@Before表示每次测试都会先执行一次,一般用于初始化。@After表示每次测试后都会执行一次,一般用于断开IO连接等

package junit.demo;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Before;
public class TestCalcuate {
    Calcuate calcuate;   //全局变量
    @Before    //每次测试都会执行一次,一般用于初始化,一般取名为setUp
    public void setUp() {
        calcuate=new Calcuate();
    }

    @Test
    public void testAdd() {
        int result = calcuate.add(2, 3);    //进行add操作
        assertEquals(5, result);            //通过断言assertEquals看上面得到的结果是不是期望的结果
    }

    @Test
    public void testSub() {
        assertEquals(3, calcuate.sub(5, 2));  
    }  
    .....

现在testAdd、testSub都已完成了测试,聪明的人又会发现,引用包的时候import static org.junit.Assert.*;是什么?意思是静态导入Assert,我们用到的fail和assertEquals都是Assert的静态方法,静态导入Assert之后,就不需要我们每次开头都写”Assert.”。
还有一些其他的标注和方法下一篇会详细讲解。

猜你喜欢

转载自blog.csdn.net/u012882327/article/details/72621984