【JUnit学习笔记】1:使用JUnit4进行简易单元测试的例子
参考:1,2,3
程序结构
JUnit运行配置
在IDEA中:
在Eclipse中直接右键,Run AS->JUnit Test即可。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.lzh</groupId><artifactId>testJUnit</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-test --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.14.RELEASE</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.14.RELEASE</version></dependency></dependencies></project>
Calculation类
这是要测试的方法所在的类。
package org.lzh;import org.springframework.stereotype.Component;//使用@Component注册为bean以使能被扫描注入
@Component
public class Calculation {public int add(int a,int b){return a+b+1;//故意出错}public int sub(int a,int b){return a-b;}
}
MyJUnit4Test测试类
package org.lzh.test;import org.junit.*;
import org.junit.runner.RunWith;
import org.lzh.Calculation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import static org.junit.Assert.assertEquals;//测试运行器
@RunWith(SpringJUnit4ClassRunner.class)
//配置文件路径
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class MyJUnit4Test {@AutowiredCalculation calculation;//要测试的类的对象int result;//测试结果//在JUnit4中使用@Test标注为测试方法@Test//测试方法必须是public void的public void testAdd() {System.out.println("---testAdd开始测试---");//每个里面只测一次,因为assertEquals一旦测试发现错误就抛出异常,不再运行后续代码result = calculation.add(1, 2);assertEquals(3, result);System.out.println("---testAdd正常运行结束---");}//又一个测试方法//timeout表示测试允许的执行时间毫秒数,expected表示忽略哪些抛出的异常(不会因为该异常导致测试不通过)@Test(timeout = 1, expected = NullPointerException.class)public void testSub() {System.out.println("---testSub开始测试---");result = calculation.sub(1, 2);assertEquals(-1, result);throw new NullPointerException();//System.out.println("---testSub正常运行结束---");}//指示该[静态方法]将在该类的[所有]测试方法执行之[前]执行@BeforeClasspublic static void beforeAll() {System.out.println("||==BeforeClass==||");System.out.println("||==通常在这个方法中加载资源==||");}//指示该[静态方法]将在该类的[所有]测试方法执行之[后]执行@AfterClasspublic static void afterAll() {System.out.println("||==AfterClass==||");System.out.println("||==通常在这个方法中释放资源==||");}//该[成员方法]在[每个]测试方法执行之[前]执行@Beforepublic void beforeEvery() {System.out.println("|==Before==|");}//该[成员方法]在[每个]测试方法执行之[后]执行@Afterpublic void afterEvery() {System.out.println("|==After==|");}}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--扫描bean--><context:component-scan base-package="org.lzh"/>
</beans>
运行结果
【JUnit学习笔记】1:使用JUnit4进行简易单元测试的例子相关推荐
- java学习笔记:里氏代换原则的两个例子
java学习笔记:里氏代换原则的两个例子 (根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取 ExampleA类型异常的catch块能够抓住try块中抛出的ExampleB类型的异常) p ...
- cocos2d-x初探学习笔记(2)--重要概念及Test例子结构
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 1.几个重要概念 在cocos2d引擎中,有几 ...
- Spring Boot基础学习笔记02:Spring Boot项目单元测试、热部署与原理分析
文章目录 零.学习目标 1.掌握Spring Boot单元测试实现 2.掌握Spring Boot热部署实现 3.熟悉Spring Boot基本原理 一.Spring Boot单元测试 (一)Spri ...
- JUnit学习摘要+入门实例 (junit4)
http://www.cnblogs.com/xwdreamer/archive/2012/03/29/2423136.html 1.学习摘要 看<重构-改善既有代码的设计>这本书的时候, ...
- Ferris教程学习笔记:js示例2.13 简易JS年历
//解题思路: 将每一个月的节日保存在一个数组中,下标0开始--11 在程序中为每一个li添加一个点击事件 1:修改css属性 2:依据元素下标赋值 1 <!DOCTYP ...
- 【学习笔记】利用Excel实现简易版大屏
学习文档:https://zhuanlan.zhihu.com/p/144543905 看了网上一篇关于Excel实现大屏的博客,感觉特别有意思,也尝试做了一个,比较简陋,禁止嘲笑. 在这里还要特别感 ...
- 【Bison学习笔记】1:生成简易的语法分析程序,使Bsion和Flex协同工作
简述 Bison是在Yacc上改写并添加了大量特性后诞生的语法分析生成器,在编译前端(词法分析->语法分析->语义分析)中处在中间的位置,它可以用来生成特定的语法分析程序. 安装Bison ...
- 51单片机学习笔记——第2天:简易门铃设计(普中51中级实验例程)
文中绝大数代码来自普51开发板实验例程 门铃这个实验实际上就是按键和蜂鸣器的组合实验,没啥难度,唯一的用处就是为下一个实验(音乐播放器)做铺垫. 文章目录 门铃实现原理 扩展,调节"叮咚&q ...
- 【Flex学习笔记】1:生成简易的词法分析程序
简述 Flex是重写Lex诞生的快速词法分析生成器,在编译前端(词法分析->语法分析->语义分析)中处在最靠前的位置,它可以用来生成特定的词法分析程序. 安装Flex: apt-get i ...
最新文章
- matlab读取/播放视频的函数(1)
- Windows下的反弹shell
- Cube 技术解读 | 支付宝新一代动态化技术架构与选型综述
- jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容
- cisco 交换机通过console 导入 IOS
- Access数据库连接字符串读取,设置
- android viewdraghelper 点击移动,ViewDragHelper使用时遇到的问题
- PHP调用类函数定义位置,OOP PHP – 如何有选择地调用类的构造函数中定义的特定方法?...
- linux 查看数据库和表
- SHELL中如何对一个变量进行算术操作(加减)
- vue网页分享生成二维码微信扫一扫进行分享
- foobox 2.11(foobar2000 CUI配置)
- 基于Nonebot2搭建QQ机器人实战篇(一)
- 求职经历,三轮技术面 +HR 面,面试也不过如此
- 程序员机械键盘选购总结:键盘选的好,Bug一定少
- eclipse项目修改后浏览器不更新
- 【Scratch-动作模块】碰到边缘就反弹和翻转方式
- .Dragon4444勒索病毒处理成功方法
- Python3.5 Django1.10 Scrapy1.2 Ubuntu16.04 HTML5
- Semantic Segmentation与Instance Segmentation的区别