一、概念

junit是一个专门测试的框架

集合maven进行单元测试,可批量测试类中的大量方法是否符合预期

二、作用:
单元测试:测试的内容是类中的方法,每一个方法都是独立测试的。方法是测试的基本单位。

三、使用方法
1、pom内加入依赖

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

2、在maven中src/test/java目录下的,创建测试程序。
推荐的创建类和方法的提示:
1、测试类的名称:Test+待测试类名
2、测试方法的名称:Test+方法名称
例如:你要测试HelloMaven
创建测试类TestHelloMaven
@Test
public void testaDD(){
测试HelloMaven的add方法是否正确
}
其中testAdd叫做测试方法,定义规则:
1、方法必须是public的
2、方法必须没有返回值
3、方法名称自定义,推荐是Test+被测方法
4、方法上面加上注解@Test

四、举例,Hello项目

1、新建java源程序,存放在Hello\src\main\java\com\testbk目录下,取名HelloMaven.java

package com.testbk;
import org.junit.Assert;
import org.junit.Test; public class TestHelloMaven{
@Test
public void testAdd(){
System.out.println("maven junit testAdd()===")
HelloMaven hello = new HelloMaven();
int res = hello.add(10,20);
//验证10+20是不是30,juit提供的方法,对比结果的
//assertEquals(期望值,实际值)
Assert.assertEquals(30,res)
}
}

2、新建maven测试类型,存放在Hello\src\main\java\com\testbk目录下,取名TestHelloMaven.java

package com.testbk;
import org.junit.Assert;
import org.junit.Test; public class TestHelloMaven{
@Test
public void testAdd(){
System.out.println("maven junit testAdd()===")
HelloMaven hello = new HelloMaven();
int res = hello.add(10,20);
//验证10+20是不是30,juit提供的方法,对比结果的
//assertEquals(期望值,实际值)
Assert.assertEquals(30,res)
}
@Test
public void testAdd2(){
System.out.println("#####maven junit testAdd()2###");
HelloMaven hello = new HelloMaven();
int res = hello.add(10,20);
//验证10+20是不是30,juit提供的方法,对比结果的
//assertEquals(期望值,实际值)
Assert.assertEquals(50,res);
}
}

3、执行mvn clean:清理target目录

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.testbk:testjava >-------------------------
[INFO] Building maven 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ testjava ---
[INFO] Deleting D:\javaProjects\Hello\target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.196 s
[INFO] Finished at: 2021-04-25T22:50:10+08:00
[INFO] ------------------------------------------------------------------------

4、执行mvn compile:编译main/java目录下的java为class文件,同时把class拷贝到target/classes目录下面

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.testbk:testjava >-------------------------
[INFO] Building maven 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testjava ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testjava ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\javaProjects\Hello\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.724 s
[INFO] Finished at: 2021-04-25T22:54:23+08:00
[INFO] ------------------------------------------------------------------------

5、执行mvn test-compile:编译test/java目录下的java为class文件,同时class拷贝到target/test-classes目录下面

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.testbk:testjava >-------------------------
[INFO] Building maven 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testjava ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testjava ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ testjava ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ testjava ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\javaProjects\Hello\target\test-classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.764 s
[INFO] Finished at: 2021-04-25T22:55:43+08:00
[INFO] ------------------------------------------------------------------------

6、执行mvn test:查看测试结果,通过1,失败1,并在指定目录生成测试报告

Results :

Failed tests:   testAdd2(com.testbk.TestHelloMaven): expected:<50> but was:<30>

Tests run: 2, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.050 s
[INFO] Finished at: 2021-04-25T22:57:16+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project testjava: There are test failures.
[ERROR]
[ERROR] Please refer to D:\javaProjects\Hello\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

7、修改测试代码,并再次执行mvn test

package com.testbk;
import org.junit.Assert;
import org.junit.Test; public class TestHelloMaven{
@Test
public void testAdd(){
System.out.println("=====maven junit testAdd()===");
HelloMaven hello = new HelloMaven();
int res = hello.add(10,20);
//验证10+20是不是30,juit提供的方法,对比结果的
//assertEquals(期望值,实际值)
Assert.assertEquals(30,res);
}
@Test
public void testAdd2(){
System.out.println("#####maven junit testAdd()2###");
HelloMaven hello = new HelloMaven();
int res = hello.add(30,20);
//验证10+20是不是30,juit提供的方法,对比结果的
//assertEquals(期望值,实际值)
Assert.assertEquals(50,res);
}
}

查看运行结果,测试通过

 T E S T S
-------------------------------------------------------
Running com.testbk.TestHelloMaven
=====maven junit testAdd()===
#####maven junit testAdd()2###
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 sec Results : Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.282 s
[INFO] Finished at: 2021-04-25T22:58:41+08:00
[INFO] ------------------------------------------------------------------------

junit+maven单元测试的更多相关文章

  1. Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

    一.Maven将父项目创建到父项目的内部 在父项目的pom.xml上 点右键,选择maven-->new-->maven module  project 二.Maven聚合 在某个项目的p ...

  2. JUnit & JMockit单元测试

    JUnit&JMockit单元测试总结 1.JUnit简介 Java单元测试框架业内应用较多的是JUnit,它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的 ...

  3. java如何使用JUnit进行单元测试

    注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html 单元测试是什么? 百度 ...

  4. JUnit 4 单元测试

    Individual Project ——JUnit 4 单元测试 学习到JUnit单元测试,我拿来测试之前写过的一个计算器(两个依存类:Calc.java CalcFunction.java).代码 ...

  5. Android之如何使用JUnit进行单元测试

    转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...

  6. 使用Spring配合Junit进行单元测试的总结

    最近公司的项目和自己的项目中都用到了spring集成junit进行单元测试,总结一下几种基本的用法: 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@RunWith注 ...

  7. Spring(3)—— Junit框架单元测试

    Junit主要用于单元测试,即白盒测试.它是一个开源的由JAVA开发的一个用于测试的框架. Junit的几个基本概念:TestCase,TestSuite,TestFixtrue TestCase:代 ...

  8. JUnit + Mockito 单元测试(二)

    摘自: http://blog.csdn.net/zhangxin09/article/details/42422643 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 入门 ...

  9. spring junit 做单元测试,报 Failed to load ApplicationContext 错误

    spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locatio ...

随机推荐

  1. Linux 虚拟文件系统四大对象:超级块、inode、dentry、file之间关系

    更多嵌入式原创文章,请关注公众号:一口Linux 一:文件系统 1. 什么是文件系统? 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统. 通常文件系统是用于存储和组织文件的一 ...

  2. java中ArrayList 和 LinkedList 有什么区别

    转: java中ArrayList 和 LinkedList 有什么区别 ArrayList和LinkedList都实现了List接口,有以下的不同点:1.ArrayList是基于索引的数据接口,它的 ...

  3. 用go实现常见的数据结构

    目录 1 golang常见数据结构实现 1.1 链表 1.2 可变数组 1.3 栈和队列 1.3.1 原生切片实现栈和队列 1.3.1.1 切片原生栈实现 1.3.1.2 切片原生队列实现 1.3.2 ...

  4. 剑指 Offer 48. 最长不含重复字符的子字符串 + 动态规划 + 哈希表 + 双指针 + 滑动窗口

    剑指 Offer 48. 最长不含重复字符的子字符串 Offer_48 题目详情 解法分析 解法一:动态规划+哈希表 package com.walegarrett.offer; /** * @Aut ...

  5. POJ-1751(kruskal算法)

    Highways POJ-1751 注意这里的样例答案也是对的,只是输出顺序改变,但是这也没关系,因为题目加了特殊判断. #include<iostream> #include<cs ...

  6. 人脸识别分析小Demo

    人脸识别分析 调用 腾讯AI人脸识别接口 测试应用 纯py文件测试照片 # -*- coding: utf-8 -*- import json from tencentcloud.common imp ...

  7. go中sync.Once源码解读

    sync.Once 前言 sync.Once的作用 实现原理 总结 sync.Once 前言 本次的代码是基于go version go1.13.15 darwin/amd64 sync.Once的作 ...

  8. nginx使用-2(模块和日志)

    默认官方模块 1.1.Gzip压缩 压缩文件,使文件变小,传输更快了.目前市场上大部分浏览器是支持GZIP的.IE6以下支持不好,会出现乱码情况. 官方文档:http://nginx.org/en/d ...

  9. golang 实现最小二乘法拟合直线

    func LeastSquares(x[]float64,y[]float64)(a float64,b float64){ // x是横坐标数据,y是纵坐标数据 // a是斜率,b是截距 xi := ...

  10. 【linux】驱动-9-设备树插件

    目录 前言 9. Linux设备树插件 9.1 格式 9.2 设备树插件的编译和加载 9.2.1 单独使用dtc工具编译 9.2.2 内核dtc工具编译设备树插件 9.2.3 加载设备树插件 9.2. ...