JUnit白盒测试-第1天

    技术2022-05-20  41

    什么是单元测试

    写了个类,要给别人用,但是不知道有没有bug,测试一下,即可,一般都用main方法测试,也就是比如用System.out.println(a);的样子将要测试的东西答应出来找bug,但是这种测试方法有两个缺点:

    第一、   不能一起运行

    第二、   大多数情况下需要人为的观察输出结果确定是否正确

     

    为什么要进行单元测试

    一、重用测试,以应对将来软件开发的变化,使得程序更加健壮

    二、减少了软件运行维护的成本,降低软件bug的概率

    三、确保程序是没问题的,安心进行下一步工作

    注意:有人会问测试人员不就是专门测试的吗,没错,但是测试人员测试的是一般都是黑盒测试,也就是说根据客户和公司的协议共同制定的需求测试,主要测试的是功能是否符合客户的需求,性能测试等。而JUnit是白盒测试,是用来测试代码的,主要是用来提高软件的质量的,所以要搞清楚这个概念

     

    保持状态状态条是绿的,程序就是没问题的,比如修改assertEquals(9,z)的话,状态条就变成了其他颜色,那么说明程序有问题

     

    测试例子:

    新建一个项目名字为JUnit4,新建一个包名字为com.loulijun.junit4,新建一个classHello.java。代码如下

    package com.loulijunn.junit4;

     

    public class Hello {

        public int add(int x,int y)

        {

           return x+y;

        }

        public static void main(String args[])

        {

           int z=new Hello().add(3, 5);

           System.out.println("result="+z);

        }

    }

    那么这个时候,再新建一个包,一般这个包的名字为要测试的包的名字后面再加个.test即可如com.loulijun.junit4.test,当然这个不是必须的。

    com.loulijun.junit4.test右击鼠标,新建一个JUnit Test Case,然后再里面写入如下代码

    package com.loulijunn.junit4.test;

     

    import static org.junit.Assert.*;

     

    import org.junit.Assert;

    import org.junit.Test;

     

    import com.loulijunn.junit4.Hello;

     

    public class HelloTest {

     

        @Test

        public void testAdd() {

           //fail("Not yet implemented");

           //asset意思是断言,也就是判断到底对不对

           //Assert.assertArrayEquals(expecteds, actuals)

    //静态引入是不需要Assert.的,直接写assertArrayEquals()方法即可

           int z=new Hello().add(5,3);

           assertEquals(8, z);//期望值是8,实际值是z,如果相等,就正确,否则有问题

        }

     

    }

     

    然后选中HelloTest.java,或者选中你要测试的那个方法,如testAdd()方法,右键点击Run As—Junit Test,此时就会在左边的JUnit窗口看到是否成功的窗口

    如果状态条是绿色的,说明程序没有问题

    为了说明程序,可以把 assertEquals(8, z); 中的8该为9,再次运行JUnit Test

    如果状态栏变成了其他颜色,就程序说明有问题

     

    使用JUnit的好处:

         用不到人工的用眼睛看bug了,程序帮你看测试是否成功,(用自己的方法)

         可以多个方法一起测试

         看一眼状态条就知道是否通过了


    最新回复(0)