当前位置:   article > 正文

Maven 单元测试_maven单元测试

maven单元测试

首先在 Maven 中有固定好的目录结果,在 src 目录下分为 main 和 test,测试一定要写在 test 中

Junit 详细介绍见:JUnit4 / JUnit 5 全面详解【单元测试、Maven】

1. 案例 1

先在 maven 工程下面的 test/java 中创建一个 test 类,注意这个测试类的类名一定以 Test 开头或者 Test 结尾

因此我们创建一个 MavenTest 测试类
在这里插入图片描述

测试需要使用到 junit 这个依赖 jar 包

同理访问 jar 包查询网站: https://mvnrepository.com/;搜索 junit ,并选择最多的人的一个版本,添加到 pom.xml

在这里插入图片描述

然后通过 junit 中的 Assertions 的 Assertions.assertEquals 方法来断言,是否跟我们预期的结果一致,代码如下:

package com.lqh.maven.test;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

public class MavenTest {

    @Test
    public void testAssert(){
        int a = 10;
        int b = 20;
        Assertions.assertEquals(30, a + b); // 断言表达式的结果是否与预期的一致,如果结果不是 30 会报错
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

运行发现,我们预期的结果与实际结果一致,因此顺利运行。
在这里插入图片描述

如果将预期结果更改为 20,则可以看到,发生了报错,告诉我们,预期结果 20,实际结果为 30
在这里插入图片描述

通过 mvn test 命令即可执行 test 下的测试类

首先通过 cmd 打开命令行,并地址进去到项目文件

在这里插入图片描述

如果存在和 src 同级的 target 目录,里面有一些其他文件,则可能之前做过一些测试
在这里插入图片描述

先通过 mvn clean 清除之前的所有测试
在这里插入图片描述

清除完后,target 目录被删除。
在这里插入图片描述

首先测试程序也是一个测试类,要执行类就需要先对其进行编译,执行 mvn compile
在这里插入图片描述

编译完成后,进去到 target/classes 文件里面,发现并没有测试类的字节码文件(预期应该是 MavenTest.class),这是为什么呢?因为 mvn compile 只能编译核心程序!
在这里插入图片描述

在这里插入图片描述

如果想要编译测试程序,需要执行 mvn test-compile
在这里插入图片描述

这个时候,打开 target 目录,发现 target 目录下多了一个目录 test-classes,进入可以看到测试类的字节码文件
在这里插入图片描述

并且可以在 surefire-reports 文件内看到测试报告
在这里插入图片描述

实际上可以直接通过 mvn test 命令,直接编译执行测试类,如下:

接着执行 mvn test 命令,开始测试
在这里插入图片描述

这里可以看到,执行了测试类,并且显示,没有错误
在这里插入图片描述

如果更改我们期望值为 20(我们知道会报错,主要看程序会反馈给我们什么)
在这里插入图片描述

再一次执行 mvn test,发现报错如下:
在这里插入图片描述

不能对测试类中的方法名进行随意命名

如下,将 MavenTest 中的 testAssert 方法名改为 aaaa,将会发生什么
在这里插入图片描述

更改后,执行 mvn test,可以发现,测试类找到了,但是测试方法 Tests run 显示为:0
在这里插入图片描述

因此,在 Maven 项目中,测试类的测试方法,方法名也是有具体要求的,一定要按照要求写

定义规则如下:

  1. 方法必须是 public 的
  2. 方法必须没有返回值
  3. 方法名称自定义,推荐是 test(Test)+被测方法
  4. 方法上面加上注解 @Test

不能随意命名测试类

比如将上述的 MavenTest 改为 MavenDemo
在这里插入图片描述

再一次执行 mvn test,发现测试类根本找不到
在这里插入图片描述

因此,测试类的类名,一定要以被 Test 开头或以 Test 结尾,建议以 Test 结尾

注: 可通过 mvn clean test,依次先执行 clean 再执行 test


测试报告
在这里插入图片描述
在这里插入图片描述

References

尚硅谷Maven教程(maven入门+高深,全网无出其右!)

idea+Maven项目单元测试入门

尚硅谷新版Maven教程(高效入门maven,上手又快又稳)

IDEA中Maven项目创建单元测试(JUnit4)

idea+maven做单元测试

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/611896
推荐阅读
相关标签
  

闽ICP备14008679号