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 ...
随机推荐
- 原生JS快速实现拖放
原生 JS 快速实现拖放 拖放是很常见的一种交互效果,很多时候我们都会借助于第三方的控件来实现,其实用原生 js 实现起来也非常的方便.接下来我们就用原生 js 和 css 快速实现拖放效果 html ...
- zabbix 面板graph图上没有数据显示
1. 问题: zabbix_server日志出现大量如下错误: query failed: [1526] Table has no partition for value 1507509984 2. ...
- pytorch(05)计算图
张量的一系列操作,增多,导致可能出现多个操作之间的串行并行,协同不同的底层之间的协作,避免操作的冗余.计算图就是为了解决这些问题产生的. 计算图与动态图机制 1. 计算图 计算图用来描述运算的有向无环 ...
- canal mysql select权限粒度
今天产品问了一个问题,问懵了 产品:canal在开通mysql权限时需要哪些权限 我:SELECT, REPLICATION SLAVE, REPLICATION CLIENT 产品:那SELECT权 ...
- Hadoop hdfs副本存储和纠删码(Erasure Coding)存储优缺点
body { margin: 0 auto; font: 13px / 1 Helvetica, Arial, sans-serif; color: rgba(68, 68, 68, 1); padd ...
- CVE-2017-10271 XMLDecoder 反序列化
漏洞描述:WebLogic的 WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,可以构造请求对运行 ...
- FreeBSD ports 基本用法
首先获取portsnap#portsnap fetch extract---------------------------------------使用whereis 查询软件地址如#whereis ...
- WPF 应用 - 拖拽窗体、控件
1. 拖拽窗体 使用 System.Windows.Window 自带的 DragMove() 方法即可识别窗体拖动. DragMove(); 2. 拖拽控件:复制.移动控件 <Grid> ...
- 【odoo14】第五章、服务器侧开发-基础
本章包含如下内容: 定义模型方法和使用api装饰器 向用户反馈错误信息 针对不同的对象获取空数据集 创建新纪录 更新数据集数据 搜索数据 组合数据集 过滤数据集 遍历记录集 排序数据集 重写已有业务逻 ...
- Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 【递推】
一.题目 D2. RGB Substring (hard version) 二.分析 思路一开始就想的对的,但是,用memset给数组初始化为0超时了!超时了! 然后我按照题解改了个vector初始化 ...