junit系列教材 (一)- 入门教程

本文介绍了如何使用Java的junit框架进行单元测试,包括从main函数测试的问题、引入junit的解决方案、测试方法的编写、运行方式、以及before&after方法的使用。通过实例演示了如何添加新的测试方法和处理测试失败情况。

步骤1:用 main 进行测试
步骤2:main 的问题
步骤3:junit
步骤4:运行方式
步骤5:运行成功
步骤6:新增加一个测试方法
步骤7:运行失败
步骤8:junit的好处
步骤9:before & after
步骤10:可运行项目
步骤11:Assert

步骤 1 : 用 main 进行测试

大家刚开始写代码的时候,都会用 main 函数来进行运行。顺便测试一下所写的代码,是否按照期望运行。
比如如下代码,用来测试sum方法是否按照预期进行执行。

package junit;

public class SumUtil {

    public static void main(String[] args) {

        int result = sum1(1,2);

        System.out.println(result);

    }

    public static int sum1(int i, int j) {

        return i+j;

    }

     

}

步骤 2 : main 的问题

通过main方法来进行测试的问题是显而易见的。
比如新开发了一个方法,是对3个数求和,那么问题至少有两个:
1. 要在原来测试的基础上修改,可能破坏原来的测试逻辑
2. 测试成功了,还是i测试失败了,都不知道呀。。。只能通过肉眼进行观察,如果测试的量很大,是很难看的过来滴

package junit;

public class SumUtil {

    public static void main(String[] args) {

        int result = sum1(1,2);

        System.out.println(result);

        int result2 = sum2(1,2,3);

        System.out.println(result2);

    }

    public static int sum1(int i, int j) {

        return i+j;

    }

     

    public static int sum2(int i, int j, int k) {

        return i+j+k;

    }

     

}

步骤 3 : junit

为了应付这种测试的需求,我们就需要使用 junit 测试框架来进行测试工作。
首先下载 jar 包: 放在下载区(点击进入)的 junit-4.9.jar, 导入到项目中。
然后创建 TestCase1类,并创建一个方法:

@Test

public void testSum1() {

    int result = SumUtil.sum1(12);

    Assert.assertEquals(result, 3);

}


它是由 @Test 进行了注解,表示这个方法是一个测试方法
Assert.assertEquals(result, 3); 表示对 result 数值的期待是 3,如果是其他数值,就无法通过测试。

package junit;

import org.junit.Test;

import junit.framework.Assert;

public class TestCase1 {

    @Test

    public void testSum1() {

        int result = SumUtil.sum1(12);

        Assert.assertEquals(result, 3);

    }

}

步骤 4 : 运行方式

与main方法运行不一样,运行测试用例的时候,需要选择 Run As -> JUnit Test 方式

运行方式

步骤 5 : 运行成功

运行成功之后,会显示如图所示的样子,是绿色的

运行成功

步骤 6 : 新增加一个测试方法

接着,我们新增加一个 testSum2 方法, 用于测试sum2 方法。
这一次,我们故意写成

Assert.assertEquals(result, 5);


看看如果测试不能通过是什么样子的。

package junit;

import org.junit.Test;

import junit.framework.Assert;

public class TestCase1 {

    @Test

    public void testSum1() {

        int result = SumUtil.sum1(12);

        Assert.assertEquals(result, 3);

    }

    @Test

    public void testSum2() {

        int result = SumUtil.sum2(12,3);

        Assert.assertEquals(result, 5);

    }

}

步骤 7 : 运行失败

运行之后,因为 result 的值是 6, 并不等于5, 所以失败之后,看到如图所示的效果,表示没有通过测试。
而且还给出了失败的行数: TesetCase1.java:18

运行失败

步骤 8 : junit的好处

现在回过头来看 junit 解决的main 的问题 中的2个问题
1. 新增加的测试,对原来的测试没有影响
2. 如果测试失败了,会立即得到通知

步骤 9 : before & after

@Before @After 也是常见的测试框架注解,分别用来在测试开始之前做的事情,和结束之后做的事情。

before & after

package junit;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import junit.framework.Assert;

public class TestCase1 {

    @Before

    public void before() {

        System.out.println("测试前的准备工作,比如链接数据库等等");

    }

    @After

    public void after() {

        System.out.println("测试结束后的工作,比如关闭链接等等");

    }

     

    @Test

    public void testSum1() {

        int result = SumUtil.sum1(12);

        Assert.assertEquals(result, 3);

    }

    @Test

    public void testSum2() {

        int result = SumUtil.sum2(12,3);

        Assert.assertEquals(result, 5);

    }

}

步骤 10 : 可运行项目

下载区(点击进入)有本知识点对应的可运行项目下载 ,实在自己搞不出来,就下载解压出来比较一下。

步骤 11 : Assert

关于 Assert的用法,除了举例里的判断数字是否相等,还可以判断boolean, 是否是null ,是否是相同对象等等常见逻辑。
用法都在截图里了,很简单,有兴趣就自己挨个试试好了

Assert


更多内容,点击了解: https://how2j.cn/k/junit/junit-tutorial/1937.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值