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中的单元测试相关推荐

  1. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  2. java 单元测试_在springboot中写单元测试解决依赖注入和执行后事务回滚问题

    往期文章 「Java并发编程」谈谈Java中的内存模型JMM 面试官:说说你知道多少种线程池拒绝策略 为什么不要在MySQL中使用UTF-8编码方式 前言 很多公司都有写单元测试的硬性要求,在提交代码 ...

  3. [Java]jvm参数选项中文文档

    本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Options 编写的译文.主要介绍JVM中的非稳态选项及其使用说明.  为了让读者明白每个选项的含义,作者在原文基础上补充了大 ...

  4. 在Android中进行单元测试遇到的问题

    问题1.Cannot connect to VM  socket closed 在使用JUnit进行测试的时候,遇到这个问题.网上的解释是:使用Eclipse对Java代码进行调试,无论是远程JVM还 ...

  5. Java5中的线程池实例讲解

    Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活.本文通过一个网络服务器模型,来实践Java5的多线程 ...

  6. Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统

    理论知识很枯燥,但这些都是基本功,学完可能会忘,但等用的时候,会发觉之前的学习是非常有意义的,学习线程就是这样子的. 1.如何创建锁? Lock lock = new ReentrantLock(); ...

  7. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例

     要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...

  8. .NET 项目中的单元测试

    .NET 项目中的单元测试 Intro "不会写单元测试的程序员不是合格的程序员,不写单元测试的程序员不是优秀的工程师." -- 一只想要成为一个优秀程序员的渣逼程序猿. 那么问题 ...

  9. java静态导入_Java中越来越多地接受静态导入吗?

    java静态导入 曾经有一段时间,至少在礼貌的社会中,人们普遍认为使用" 不是 "一词是不可接受的. 确实,在那个时候(也许直到今天),很多人确实(也确实)不认为这不是一个真实的词 ...

最新文章

  1. VS2013+OpenCV3.1.0配置教程
  2. FPGA的LVDS电平以及LVDS25电平能在HR Bank上使用吗?
  3. 用 Windows Live Writer 2009 为我们的博客园写博客(图)
  4. 短 URL 服务,怎么设计与实现?
  5. 利用MATLAB实现移动目标的TDOA/FDOA定位算法
  6. bzoj2161 布娃娃
  7. 解决oj哈夫曼树问题,学习了priority_queue
  8. mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门
  9. mac pandas文件路径_Mac进阶必看:如何利用Automator快速获取文件路径
  10. ubuntu18.04安装mysql数据库
  11. Linux——alias 设置别名详解
  12. TIP 2021论文:多曝光图像融合及超分辨的联合实现
  13. NYOJ--114--某种序列(大数)
  14. 基于springboot毕业设计管理系统设计与实现(带论文)
  15. JavaEE项目 Web聊天室(JSP实现)
  16. 下了一个游戏说计算机丢失,冰封64位win10系统下启动游戏提示计算机丢失XINPUT1-3.dll怎么办...
  17. bzoj 4568 [Scoi2016]幸运数字
  18. win10怎么更新显卡驱动_如何禁止win10自动更新显卡驱动
  19. 【K8S】阿里云VPS内网环境-Kubernetes集群基础部署(CentOS8.2)
  20. Scala 令人着迷的类设计

热门文章

  1. 基于阿里云 DNS API 实现的 DDNS 工具
  2. 谈谈ASP.NET Core中的ResponseCaching
  3. 依赖注入的威力,.NET Core的魅力:解决MVC视图中的中文被html编码的问题
  4. 先定个小目标, 使用C# 开发的千万级应用
  5. linux c之在终端如何依赖.o文件(静态链接库)运行C文件的命令
  6. C和指针之数组编程练习8(8皇后问题)
  7. linux网络编程之Listen函数参数介绍
  8. linux网络编程之并发服务器的三种实现模型 (超级经典)
  9. ip校验和及udp校验和的计算方法
  10. Android之在linux环境不通过TAG快速过滤日志