需求千万条,质量第一条——单元测试第一章

其实单元测试很简单,并没有想象中那么复杂
首先需要学习Junit的使用,这是单元测试中最基本的内容,用于验证代码的返回值与自己设想的值是否是相同的。

举例最简单的方法:

public  int add(int a,int b){
        return a+b;
    }

这个方法在简单不过了,很多人都可能认为不需要测试,很自信,
在这里插入图片描述
首先你要和上述一样,在test文件夹下创建一个测试了,
这个测试类要注意以下三个注解:
@Test:最重要的注解,表示这是一个测试方法,只有存在这个注解的时候,测试类里面的这个方法才会被执行。不被注解就不会被执行。
@Before:初始化变量,有些变量需要被初始化的时候,就可以在被这个注解的方法下进行初始化
@After:释放资源,比如开始初始化的资源,需要在这个测试类完成之后进行释放
在这里插入图片描述
如上图所示:Junit只认这个三个注解,不认注解的方法名称,这里需要注意的。

示例如下:
在这里插入图片描述
在这里插入图片描述
其实这里有两个测试方法,可以看到两个名称。

@After
    public void after(){
        unitTest=null;
        System.out.print(" @After注解最后执行 \n");

    }
    @Before
    public void before(){
        unitTest=new UnitTest();
        System.out.print("@Before注解首先执行 \n");
    }
    @Test
    public void addition_isCorrect() {
        assertEquals(4, 2 + 2);
        System.out.print(" @Test多次执行 \n");
    }

    @Test
    public void addTest(){
        assertEquals(4, unitTest.add(2,2));
        System.out.print(" @Test多次执行 \n");
    }

上述是整体的代码:
在这里插入图片描述
上述是执行整个单元测试的效果,这就是为什么有 @After注解,因为每个单元测试都是独立的,不依赖任何别的任何测试的结果,因为被@Test的测试方法顺序不一定是按照你写的测试方法顺序执行。
每次都执行初始化容易造成内存被占用太多,所以最后要被释放。

assert 类

这个类是进行判断的类,可以将两个结果进行判断。
assertEquals(expected, actual),第一个参数是预期值,第二个参数是实际结果。
有很多方法:
assertEquals(expected, actual):判断是否一致,如果expected和actual一致的话测试通过
assertEquals(expected, actual, tolerance):这里传入的expected和actual是float或double类型的,因为传入的是float或者double类型的,所以最后一个参数是误差值。
assertTrue(boolean condition):验证contidion的值是true
assertFalse(boolean condition):与assertTrue相反,验证contidion的值是false
assertNull(Object obj):验证obj的值是null
assertNotNull(Object obj):与上述相反,验证obj的值不是null
assertSame(expected, actual):验证expected和actual是同一个对象,即指向同一个对象
assertNotSame(expected, actual):验证expected和actual不是同一个对象,即指向不同的对象
一般情况下里面是有两个参数的,事实上还可以有三个参数,
在这里插入图片描述
最后一个参数是误差值,是预期结果和实际结果的比较,不能大于误差值。

其他的一些:
@Test(expected = NullPointerException.class),在注解中加入expected可以判断是否会有异常,可以判断是否有空指针异常等异常。
@Test(timeout = 10000) 在注解中加入timeout,判断方法执行的操作时间。
@BeforeClass: 方法必须必须要是静态方法(static 声明),所有测试开始之前运行,注意区分@Before,是所有测试方法
@AfterClass: 方法必须要是静态方法(static 声明),所有测试结束之后运行,注意区分 @After
@Ignore: 被忽略的测试方法:这个方法是为了假如有些方法被废弃了或者修改过,不再适合以前的测试方法,就可以加上这个注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值