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

来源:互联网 发布:在线客服js懒人之家 编辑:程序博客网 时间:2024/06/05 02:50

自上一篇博客起,我们现在有了测试类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.”。
还有一些其他的标注和方法下一篇会详细讲解。

阅读全文
1 0
原创粉丝点击