一、概念

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. 腾讯数据库tdsql部署与验证

    环境准备 | 主机 | IP | 配置(最低要求配置) | | :----- | ------------- | ------------------ | | node-1 | 192.168.1.8 ...

  2. linux之安装nginx

    nginx官网:http://nginx.org/en/download.html 1.安装nginx所需环境 a)  PCRE pcre-devel 安装 # yum install -y pcre ...

  3. docker里运行docker命令

    一.概述 现有环境的jenkins是在docker里面运行的,需要执行docker相关命令才行. 关于基于docker搭建jenkins,请参考链接: https://www.cnblogs.com/ ...

  4. arch 安装笔记

    arch- 第一次装archLinux时,照着别人的安装教程来安装,由于不懂有些命令的意思,装了好几次才成功,这次趁着热乎,把安装的步骤写下来,为自己踩踩坑(桌面是xfce,下面也有换桌面的方法,我第 ...

  5. Linux自学之旅-基础命令(chown和chgrp)

    转: Linux自学之旅-基础命令(chown和chgrp) Linux自学之旅-基础命令(改变所有者与所属组的命令) 文章目录 前言 一.chown命令 二.chgrp命令 总结 前言 1.上一节我 ...

  6. MySQL使用入门--初识数据库

    MySQL使用入门 数据库概述 数据库是存放数据的仓库.在应用的开发中总是离不开数据的查询.处理.存储,例如图书管理系统就需要操纵和存储大量的数据.没有数据库之前我们使用文件存储数据,但是文件存储有很 ...

  7. CVE-2020-1938 -Tomcat-AJP任意文件读取/包含

    为什么这个漏洞被称作 Ghostcat(幽灵猫)? 这个漏洞影响全版本默认配置下的 Tomcat(在我们发现此漏洞的时候,确认其影响 Tomcat 9/8/7/6 全版本,而年代过于久远的更早的版本未 ...

  8. mongodb 聚合(aggregate)

      MongoDB中文手册|官方文档中文版 https://docs.mongoing.com/ 聚合操作处理数据记录和 return 计算结果.聚合操作将来自多个文档的值组合在一起,并且可以对分组数 ...

  9. ASP.NET Core扩展库之日志

        上一篇我们对Xfrogcn.AspNetCore.Extensions扩展库功能进行了简单的介绍,从这一篇文章开始,我将逐步介绍扩展库中的核心功能.     日志作为非业务的通用领域基础功能, ...

  10. web实现时钟效果

    纯原生开发时钟效果,话不多说直接上代码. HTML标签部分 <div class="cricles">         <div class="poin ...