参考: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进行简易单元测试的例子相关推荐

  1. java学习笔记:里氏代换原则的两个例子

    java学习笔记:里氏代换原则的两个例子 (根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取 ExampleA类型异常的catch块能够抓住try块中抛出的ExampleB类型的异常) p ...

  2. cocos2d-x初探学习笔记(2)--重要概念及Test例子结构

    小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man 1.几个重要概念 在cocos2d引擎中,有几 ...

  3. Spring Boot基础学习笔记02:Spring Boot项目单元测试、热部署与原理分析

    文章目录 零.学习目标 1.掌握Spring Boot单元测试实现 2.掌握Spring Boot热部署实现 3.熟悉Spring Boot基本原理 一.Spring Boot单元测试 (一)Spri ...

  4. JUnit学习摘要+入门实例 (junit4)

    http://www.cnblogs.com/xwdreamer/archive/2012/03/29/2423136.html 1.学习摘要 看<重构-改善既有代码的设计>这本书的时候, ...

  5. Ferris教程学习笔记:js示例2.13 简易JS年历

    //解题思路:    将每一个月的节日保存在一个数组中,下标0开始--11    在程序中为每一个li添加一个点击事件    1:修改css属性    2:依据元素下标赋值 1 <!DOCTYP ...

  6. 【学习笔记】利用Excel实现简易版大屏

    学习文档:https://zhuanlan.zhihu.com/p/144543905 看了网上一篇关于Excel实现大屏的博客,感觉特别有意思,也尝试做了一个,比较简陋,禁止嘲笑. 在这里还要特别感 ...

  7. 【Bison学习笔记】1:生成简易的语法分析程序,使Bsion和Flex协同工作

    简述 Bison是在Yacc上改写并添加了大量特性后诞生的语法分析生成器,在编译前端(词法分析->语法分析->语义分析)中处在中间的位置,它可以用来生成特定的语法分析程序. 安装Bison ...

  8. 51单片机学习笔记——第2天:简易门铃设计(普中51中级实验例程)

    文中绝大数代码来自普51开发板实验例程 门铃这个实验实际上就是按键和蜂鸣器的组合实验,没啥难度,唯一的用处就是为下一个实验(音乐播放器)做铺垫. 文章目录 门铃实现原理 扩展,调节"叮咚&q ...

  9. 【Flex学习笔记】1:生成简易的词法分析程序

    简述 Flex是重写Lex诞生的快速词法分析生成器,在编译前端(词法分析->语法分析->语义分析)中处在最靠前的位置,它可以用来生成特定的词法分析程序. 安装Flex: apt-get i ...

最新文章

  1. matlab读取/播放视频的函数(1)
  2. Windows下的反弹shell
  3. Cube 技术解读 | 支付宝新一代动态化技术架构与选型综述
  4. jsp导入jstl标签库_EE JSP:使用JSTL标记库生成动态内容
  5. cisco 交换机通过console 导入 IOS
  6. Access数据库连接字符串读取,设置
  7. android viewdraghelper 点击移动,ViewDragHelper使用时遇到的问题
  8. PHP调用类函数定义位置,OOP PHP – 如何有选择地调用类的构造函数中定义的特定方法?...
  9. linux 查看数据库和表
  10. SHELL中如何对一个变量进行算术操作(加减)
  11. vue网页分享生成二维码微信扫一扫进行分享
  12. foobox 2.11(foobar2000 CUI配置)
  13. 基于Nonebot2搭建QQ机器人实战篇(一)
  14. 求职经历,三轮技术面 +HR 面,面试也不过如此
  15. 程序员机械键盘选购总结:键盘选的好,Bug一定少
  16. eclipse项目修改后浏览器不更新
  17. 【Scratch-动作模块】碰到边缘就反弹和翻转方式
  18. .Dragon4444勒索病毒处理成功方法
  19. Python3.5 Django1.10 Scrapy1.2 Ubuntu16.04 HTML5
  20. Semantic Segmentation与Instance Segmentation的区别

热门文章

  1. 格力蒸发式冷风扇开机鸣响故障的修复
  2. 沈阳桃仙机场停车费一天多少钱,沈阳桃仙机场停车怎么收费
  3. linux centos 解压 tar.bz2文件
  4. 乐优商城部署配置过程
  5. TCP和UDP协议常用端口汇总
  6. 页面请求方法参数最长_url传值的长度限制解决办法
  7. 带你玩转Mysql高可用方案--PXC
  8. Gridview利用DataFormatString属性设置数据格式
  9. Linux系统下的10款非常优秀的POS开源软件
  10. codeforces#375(div.2)723D - Lakes in Berland dfs+bfs