java junit4_JUnit4使用Java5中的单元测试
1、JUnit4使用Java5中的注解(annotation)
@Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
@Test:测试方法,在这里可以测试期望异常和超时时间
@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常
@Ignore:忽略的测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void
一个JUnit4的单元测试用例执行顺序为:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
每一个测试方法的调用顺序为:
@Before -> @Test -> @After;
2、执行顺序
随机执行
@FixMethodOrder(MethodSorters.DEFAULT)
public class TestOrder
按testcase名称字符串顺序执行
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestOrder
3、代码注入Mock
JMokit中的@Mocked与@Injectable区别
public class CommonDaoTest {
@Mock
private MongoTemplate mongoTemplate; //注入mongdb mock类,不访问库
@InjectMocks //注入的目标类,要实现的test类
private CommonDao commonDao;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this); //此处一定要记得加上,否则出错
}
@Test
public void dropCollectionName() {
doNothing().when(mongoTemplate).dropCollection("116");
commonDao.dropCollectionName("116"); //CommonDao实现了删除文档的功能
}
}
org.jmockit
jmockit
1.23
test
4、各种mock示例
when(systemConfigurationService.getConfiguration(eq(String.class), anyString())).thenReturn("(\\d+\\.*\\d*)");
when(objService.getKnowledgePointList(anyList())).thenReturn(objectiveKnowledges);
when(mongoTemplate.updateFirst(any(Query.class), any(Update.class), anyString())).thenReturn(mock(WriteResult.class));
when(mongoTemplate.collectionExists("111")).thenReturn(false);
when(configRepository.findByType(anyString())).thenReturn(mock(Config.class));
java junit4_JUnit4使用Java5中的单元测试相关推荐
- java 中的单元测试_浅谈Java 中的单元测试
单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...
- java 单元测试_在springboot中写单元测试解决依赖注入和执行后事务回滚问题
往期文章 「Java并发编程」谈谈Java中的内存模型JMM 面试官:说说你知道多少种线程池拒绝策略 为什么不要在MySQL中使用UTF-8编码方式 前言 很多公司都有写单元测试的硬性要求,在提交代码 ...
- [Java]jvm参数选项中文文档
本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Options 编写的译文.主要介绍JVM中的非稳态选项及其使用说明. 为了让读者明白每个选项的含义,作者在原文基础上补充了大 ...
- 在Android中进行单元测试遇到的问题
问题1.Cannot connect to VM socket closed 在使用JUnit进行测试的时候,遇到这个问题.网上的解释是:使用Eclipse对Java代码进行调试,无论是远程JVM还 ...
- Java5中的线程池实例讲解
Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活.本文通过一个网络服务器模型,来实践Java5的多线程 ...
- Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统
理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...
- SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例
要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...
- .NET 项目中的单元测试
.NET 项目中的单元测试 Intro "不会写单元测试的程序员不是合格的程序员,不写单元测试的程序员不是优秀的工程师." -- 一只想要成为一个优秀程序员的渣逼程序猿. 那么问题 ...
- java静态导入_Java中越来越多地接受静态导入吗?
java静态导入 曾经有一段时间,至少在礼貌的社会中,人们普遍认为使用" 不是 "一词是不可接受的. 确实,在那个时候(也许直到今天),很多人确实(也确实)不认为这不是一个真实的词 ...
最新文章
- VS2013+OpenCV3.1.0配置教程
- FPGA的LVDS电平以及LVDS25电平能在HR Bank上使用吗?
- 用 Windows Live Writer 2009 为我们的博客园写博客(图)
- 短 URL 服务,怎么设计与实现?
- 利用MATLAB实现移动目标的TDOA/FDOA定位算法
- bzoj2161 布娃娃
- 解决oj哈夫曼树问题,学习了priority_queue
- mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门
- mac pandas文件路径_Mac进阶必看:如何利用Automator快速获取文件路径
- ubuntu18.04安装mysql数据库
- Linux——alias 设置别名详解
- TIP 2021论文:多曝光图像融合及超分辨的联合实现
- NYOJ--114--某种序列(大数)
- 基于springboot毕业设计管理系统设计与实现(带论文)
- JavaEE项目 Web聊天室(JSP实现)
- 下了一个游戏说计算机丢失,冰封64位win10系统下启动游戏提示计算机丢失XINPUT1-3.dll怎么办...
- bzoj 4568 [Scoi2016]幸运数字
- win10怎么更新显卡驱动_如何禁止win10自动更新显卡驱动
- 【K8S】阿里云VPS内网环境-Kubernetes集群基础部署(CentOS8.2)
- Scala 令人着迷的类设计
热门文章
- 基于阿里云 DNS API 实现的 DDNS 工具
- 谈谈ASP.NET Core中的ResponseCaching
- 依赖注入的威力,.NET Core的魅力:解决MVC视图中的中文被html编码的问题
- 先定个小目标, 使用C# 开发的千万级应用
- linux c之在终端如何依赖.o文件(静态链接库)运行C文件的命令
- C和指针之数组编程练习8(8皇后问题)
- linux网络编程之Listen函数参数介绍
- linux网络编程之并发服务器的三种实现模型 (超级经典)
- ip校验和及udp校验和的计算方法
- Android之在linux环境不通过TAG快速过滤日志