junit+maven单元测试
一、概念
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单元测试的更多相关文章
- Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程
一.Maven将父项目创建到父项目的内部 在父项目的pom.xml上 点右键,选择maven-->new-->maven module project 二.Maven聚合 在某个项目的p ...
- JUnit & JMockit单元测试
JUnit&JMockit单元测试总结 1.JUnit简介 Java单元测试框架业内应用较多的是JUnit,它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的 ...
- java如何使用JUnit进行单元测试
注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html 单元测试是什么? 百度 ...
- JUnit 4 单元测试
Individual Project ——JUnit 4 单元测试 学习到JUnit单元测试,我拿来测试之前写过的一个计算器(两个依存类:Calc.java CalcFunction.java).代码 ...
- Android之如何使用JUnit进行单元测试
转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...
- 使用Spring配合Junit进行单元测试的总结
最近公司的项目和自己的项目中都用到了spring集成junit进行单元测试,总结一下几种基本的用法: 1.直接对spring中注入的bean进行测试(以DAO为例): 在测试类上添加@RunWith注 ...
- Spring(3)—— Junit框架单元测试
Junit主要用于单元测试,即白盒测试.它是一个开源的由JAVA开发的一个用于测试的框架. Junit的几个基本概念:TestCase,TestSuite,TestFixtrue TestCase:代 ...
- JUnit + Mockito 单元测试(二)
摘自: http://blog.csdn.net/zhangxin09/article/details/42422643 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 入门 ...
- spring junit 做单元测试,报 Failed to load ApplicationContext 错误
spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locatio ...
随机推荐
- 解决vue 绑定事件会覆盖默认参数的问题
解决vue 绑定事件会覆盖默认参数的问题 在使用一些ui框架的时候,某些组件的框架中的事件所规定的参数不能满足实际开发的需要,但是直接传入参数会把默认的参数覆盖掉 解决方法:将参数放入箭头函数中,传递 ...
- 第十届蓝桥杯省赛-试题E: RSA 解密
试题E: RSA 解密 这里涉及到很多数论的知识:质因子分解,扩展欧几里得算法,快速幂算法,利用快速乘算法求解快速幂(mod太大导致不能直接乘,而是需要使用加法来替代乘法) 另外还需要注意扩展欧几里得 ...
- Java 基础加强 01
基础加强·网络编程 和 GUI 网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及外部设备,通过通信连接起来 在网路操作系统,网络管理软件和网络通信协议的管理下,实现 ...
- python3 批量处理域名解析
域名批量解析,快速确认域名的存活性及IP地址,脚本中包含了具体的用法和简要说明 #!/usr/bin/env python # -*- coding:utf-8 -*- # python3.6 fro ...
- mysql查询较长的执行进程及创建权限账号
A:对于死锁,进程的操作 1.查找当前活跃事务 SELECT * from information_schema.INNODB_TRX 根据trx_started等判断事务是否异常锁定 2.杀死线程 ...
- Protobuf在Cmake中的正确使用
Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式.例如,在深度学习中常用的ONNX交换模型就是使用.pr ...
- 关于djangorestframework
djangorestframework技术文档 restfrmework规范 开发模式 普通开发为前端和后端代码放在一起写 前后端分离为前后端交互统统为ajax进行交互 前后端分离 优点:分工明细,节 ...
- 几大BSD 区别
OpenBSD 侧重于安全,软件包较少,较陈旧,比如 KDE 才 3.5,为了安全舍弃了 sudo 和 linux 兼容层: FreeBSD 是开发者最多用户最多软件包最多的,有 ZFS 和 Linu ...
- STL之string容器
string string封装了char*,管理这个字符串,是一个char*型的容器. string的相关操作 头文件 #include<string> string构造函数 string ...
- 记一次 mysql主从复制安装配置 过程
mysql主从复制安装配置 1.centos安装及准备 去centos官网下载相应source版本的镜像文件并在vmware中安装,安装中会遇到填写installation source,输入以下即可 ...