https://www.letianbiji.com/java-mockito/mockito-thenreturn.html

Mockito 使用 thenReturn 设置方法的返回值

thenReturn 用来指定特定函数和参数调用的返回值。

比如:

import org.junit.Assert;
import org.junit.Test;
import static org.mockito.Mockito.*; import java.util.Random; public class MockitoDemo { @Test
public void test() { Random mockRandom = mock(Random.class); when(mockRandom.nextInt()).thenReturn(1); Assert.assertEquals(1, mockRandom.nextInt()); } }
Copy

thenReturn 中可以指定多个返回值。在调用时返回值依次出现。若调用次数超过返回值的数量,再次调用时返回最后一个返回值。

import org.junit.Assert;
import org.junit.Test;
import static org.mockito.Mockito.*; import java.util.Random; public class MockitoDemo { @Test
public void test() {
Random mockRandom = mock(Random.class); when(mockRandom.nextInt()).thenReturn(1, 2, 3); Assert.assertEquals(1, mockRandom.nextInt());
Assert.assertEquals(2, mockRandom.nextInt());
Assert.assertEquals(3, mockRandom.nextInt());
Assert.assertEquals(3, mockRandom.nextInt());
Assert.assertEquals(3, mockRandom.nextInt());
} }
Copy

( 本文完 )

https://www.letianbiji.com/java-mockito/mockito-verify.html

Mockito 使用 verify 校验是否发生过某些操作

使用 verify 可以校验 mock 对象是否发生过某些操作

示例

import org.junit.Test;

import static org.mockito.Mockito.*;

public class MockitoDemo {

    static class ExampleService {

        public int add(int a, int b) {
return a+b;
} } @Test
public void test() { ExampleService exampleService = mock(ExampleService.class); // 设置让 add(1,2) 返回 100
when(exampleService.add(1, 2)).thenReturn(100); exampleService.add(1, 2); // 校验是否调用过 add(1, 2) -> 校验通过
verify(exampleService).add(1, 2); // 校验是否调用过 add(2, 2) -> 校验不通过
verify(exampleService).add(2, 2); } }
Copy

verify 配合 time 方法,可以校验某些操作发生的次数

示例:

import org.junit.Test;

import static org.mockito.Mockito.*;

public class MockitoDemo {

    static class ExampleService {

        public int add(int a, int b) {
return a+b;
} } @Test
public void test() { ExampleService exampleService = mock(ExampleService.class); // 第1次调用
exampleService.add(1, 2); // 校验是否调用过一次 add(1, 2) -> 校验通过
verify(exampleService, times(1)).add(1, 2); // 第2次调用
exampleService.add(1, 2); // 校验是否调用过两次 add(1, 2) -> 校验通过
verify(exampleService, times(2)).add(1, 2); } }
Copy

( 本文完 )

 
 
https://blog.csdn.net/weixin_43909848/article/details/109304994
其它总结

单元测试之Mockito+Junit使用和总结的更多相关文章

  1. 玩转单元测试之Testing Spring MVC Controllers

    玩转单元测试之 Testing Spring MVC Controllers 转载注明出处:http://www.cnblogs.com/wade-xu/p/4311657.html The Spri ...

  2. Android单元测试之二:本地测试

    Android单元测试之二:本地测试 本地测试 本地测试( Local tests):只在本地机器 JVM 上运行,以最小化执行时间,这种单元测试不依赖于 Android 框架,或者即使有依赖,也很方 ...

  3. 补习系列(8)-springboot 单元测试之道

    目录 目标 一.About 单元测试 二.About Junit 三.SpringBoot-单元测试 项目依赖 测试样例 四.Mock测试 五.最后 目标 了解 单元测试的背景 了解如何 利用 spr ...

  4. Java基础学习总结(24)——Java单元测试之JUnit4详解

    Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before  ...

  5. [转载]单元测试之道(使用NUnit)

    首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试……终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而又忐忑的心情点击界面上的 ...

  6. 单元测试之道(使用NUnit)

    首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试……终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而 又忐忑的心情点击界面上 ...

  7. 单元测试之Qunit

    单元测试之Qunit 前言 因为公司开发了一套javascript SDK需要测试,在网上找了很久,找到了JQuery团队开发的QUnit,和基于JUnit的JsUnit,还有一些还没有看,先讲讲QU ...

  8. 单元测试之NUnit一

    NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 NUnit是什么? N ...

  9. iOS 单元测试之XCTest详解(一)

    iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...

  10. 玩转单元测试之WireMock -- Web服务模拟器

    玩转单元测试之WireMock -- Web服务模拟器 WireMock 是一个灵活的库用于 Web 服务测试,和其他测试工具不同的是,WireMock 创建一个实际的 HTTP服务器来运行你的 We ...

随机推荐

  1. 解密Prompt系列11. 小模型也能COT-先天不足后天来补

    前两章我们分别介绍了COT的多种使用方法以及COT的影响因素.这一章更多面向应用,既现实场景中考虑成本和推理延时,大家还是希望能用6B的模型就不用100B的大模型.但是在思维链基础和进阶玩法中反复提到 ...

  2. gin 接口开发 - 用户输入自动 TrimSpace

    最近在思考一个问题,针对用户的输入,能不能快速校验? 比方说下面的 struct,大家用过 gin 的就知道,支持指定某个字段为 required,用户如果不输入,就检验不通过. type Login ...

  3. Kubernetes亲和性学习笔记

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是欣宸在学习Kubernetes调度器的 ...

  4. Robot Framework 自动化测试部署常见问题及处理方法(一)

    1.在Python>>Scripts中运行python ride.py时报错 现象: 1 Traceback (most recent call last): 2 File "E ...

  5. Django: 获取头信息

    如何获取请求头信息 使用如下函数request.META.get("HTTP_请求头函数"),需要注意的是,请求头变量需要全部大写. 其他注意事项如下所示: 如果headerkey ...

  6. Django: request.GET.get()

    释义 query = request.GET.get('name', '') 寻找名为name的GET参数,而且如果参数没有提交,返回一个空的字符串. 对比request.GET() 如果使用requ ...

  7. 行行AI人才直播第15期:【AIGC科技公司法律顾问】Amber《AIGC的法律挑战》

    近年来,AIGC技术的迅速进步为社会经济发展带来了新的机遇.各行各业都开始关注AIGC相关技术在商业落地中的应用,AIGC相关的创业及项目如雨后春笋般涌现.然而,AIGC的广泛应用也带来了一系列的法律 ...

  8. javescript入门

    js组成和基本结构 javascript缘由:可以实现html,css初级验证实现不了的复杂的验证 减轻服务器压力(在发送请求到服务器之前用javescript验证客户端) w3c标准:结构化(htm ...

  9. Docker Dockerfile指令大全

    FROM-指定基础镜像 指定基础镜像,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令. # 语法格式 FROM < ...

  10. Pytorch构建超分辨率模型——常用模块

    Import required libraries: import torch import torch.nn as nn import torch.optim as optim from torch ...