JUnit单元测试

一、什么是Junit

Junit 是一个基于Java语言实现的单元测试的框架。通过Junit 测试框架就可以对项目中的某个类的方法进行测试。

二、开启Junit

1、加入依赖

在pom.xml文件中加入Junit依赖:

 <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

这段XML配置代码是Maven项目中pom.xml文件的一部分,用于声明项目依赖关系。具体来说,它引入了JUnit 4.13.2版本作为项目的测试依赖:
<dependencies>:这是Maven的顶级依赖元素,用来包含项目的所有依赖。
<dependency>:表示单个依赖项,每个依赖项都有自己的groupId、artifactId和version属性。
<groupId>junit</groupId>:定义了依赖的组织或项目组标识符。在本例中,junit指的是JUnit项目。
<artifactId>junit</artifactId>:标识具体的构件(或库)。对于JUnit,其主构件就是名为junit的库。
<version>4.13.2</version>:指定了要使用的JUnit版本号,这里是4.13.2版。
<scope>test</scope>:表明这个依赖仅在编译和运行测试类时使用,不会包含到最终打包的生产环境中。这对于单元测试框架如JUnit是非常常见的设置,因为生产环境通常不需要这些测试相关的库。

2、下载插件

File ——> Settings ——> Plugins ——> 搜索junit下载以下插件

 至此,作为一个maven项目就可以开始使用Junit框架了

3、开始测试

maven的test文件夹就是用来存放测试类的文件夹,所以对本项目的测试文件都存放在该目录下。
快捷生成对应类或者方法的测试类:到类名处,按下快捷键: CTRL + Shift + T 出现:

进入创建框:

在下方点击OK后就会在test目录下创建一个自己定义测试类名称的测试类,以及勾选的方法。如下:

                

每个被生成出来的测试方法都有这个可以直接运行的标志,就不需要通过main方法,而可以直接只运行这一小部分。

基本的简单实践后,再来学学理论这一part,将会有更加明朗的认识。

三、JUnit 理论知识

1. Junit可以用来干什么

上面我们已经 初步知道JUnit测试框架可以用来编写一些测试类,但上面只是一个一个的运行测试类,如果在大型项目中,可不可以将所有测试方法统一组装起来运行呢?当然可以!这就是测试套件和测试运行器。

那如果想在测试中加一些判断,判断运行后的结果与期望效果是否一样,就可以使用断言。

2. 重要API

JUnit是使用Java语言编写的一个框架,在使用时,我们需要导入对应的包,调用类的不同API来达到目的。

JUnit中最重要的就是 junit.framework 包,它包含了所有测核心类,最重要的四个类是:

类名

功能

Assert

断言方法的集合

TestCase

多重测试固定装置

TestResult

测试结果

TestSuite

组合多个测试方法的套件

(1)Assert类

这个类就是用来判断程序测试结果和预期结果是否一样。有很多判断的方式,只有返回是错误,才会记录下来:
重点有的方法:

写个小栗子:

@Test

    public void testAssert() {

        int n = 5;

        String s = "test", s1 = null;

        assertEquals(n,5);

        assertNotEquals(s,"tttt");

        assertFalse(n > 6);

        assertTrue(n == 5);

        assertNotNull(s);

        assertNull(s1);

}

执行,通过:

(2 )TestCase类

TestCase 类的一些重要方法列式如下:

举一个例子

import junit.framework.TestCase;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

public class practice extends TestCase {

    protected double fValue1;

    protected double fValue2;

    @Before

    public void setUp() {

        fValue1= 2.0;

        fValue2= 3.0;

    }

    @Test

    public void testAdd() {

        double ans = fValue1 + fValue2;

    }

@Test

    public void testMul() {

        double ans = fValue1 * fValue2;

    }

    @After

    public void tearDown() {

        fValue1= 0;

        fValue2= 0;

    }

}

这就是一个简单的测试类,两个test测试方法在执行前都会先执行setUp()方法,在执行结束后会执行tearDown()方法。还有两个相似的是beforeClass() 方法和afterClass() 方法它们都是在最开始/结束执行一次。

(3)TestResult 类

TestResult 类是用来统计收集所有执行测试案例的结果。

TestResult 类的一些重要方法如下:

(4)TestSuite 类

TestSuite 类是测试的组成部分。它可以将多种测试用例都组合起来一起运行。
TestSuite 类的一些重要方法列式如下:

来一个例子:
先创建了TestJunit1, TestJunit2, TestJunit3三个测试类,接着创建一个suite套件将它们组合起来一起运行。如下

import junit.framework.*;

public class JunitTestSuite {

   public static void main(String[] a) {

      TestSuite suite = new TestSuite(

       TestJunit1.class, TestJunit2.class, TestJunit3.class );

      TestResult result = new TestResult();

      suite.run(result);

      System.out.println("Number of test cases = " + result.runCount());

    }

}

如果我们想在某一个测试类中不执行其中一个测试方法,就可以添加@Ignore 注释,添加后,这个方法就会被忽略而不会执行。

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学CAD的河狸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值