Mockito - @Spy 与 @Mock [重复]

2023-12-03

我知道间谍调用对象上的真实方法,而模拟调用双对象上的方法。除非有代码味道,否则还应避免间谍。

但是,间谍是如何工作的以及我应该何时实际使用它们? 它们与模拟有何不同?


从技术上讲,“模拟”和“间谍”都是一种特殊的“测试替身”。

不幸的是,Mockito 使这种区别变得很奇怪。

mockito中的mock是一个普通的mock在其他模拟框架中(允许您存根调用;即从方法调用中返回特定值)。

mockito 中的间谍是部分模拟在其他模拟框架中(对象的一部分将被模拟,部分将使用真实的方法调用)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mockito - @Spy 与 @Mock [重复] 的相关文章

  • java.lang.Class: 在 java 程序中初始化 log4j 属性文件时出错

    我正在尝试使用 log4j 运行独立的 java 程序 但在调试时收到以下消息 控制台上没有 log4j 相关日志 log Logger 1343 java lang Class ERROR in 18b4aac2 有人可以建议这里出了什么
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • cucumber-junit-platform-engine 中的功能文件发现

    In cucumber junit我使用的库 CucumberOptions定义功能文件位置 package com mycompany cucumber import cucumber api CucumberOptions import
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • 在 Selenium WebDriver 上如何从 Span 标签获取文本

    在 Selenium Webdriver 上 如何从 span 标记检索文本并打印 我需要提取文本UPS Overnight Free HTML代码如下 div id customSelect 3 class select wrapper
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v

随机推荐

  • 未捕获的语法错误:意外的令牌导出 - popper.js 错误

    Angular 给出了错误 bootstrap 4 中的 popper js 给出 SyntaxError 意外的令牌导出 我从浏览器控制台收到此错误 即使我更改了 popper min js 位置引用 但没有用 node modules
  • 从公共 Instagram 主题标签获取图像

    我正在为一对即将结婚的夫妇开发一个网站 他们创建了 somehashtag其他人可以将图像发布到的地方 我想从该主题标签获取所有图像并将其发布到网站上 什么都不起作用 理想情况下我想使用 php 但 javascript jquery 也可
  • 将多个 SFTP 命令行转换为单行命令行

    我该如何转换这个EOF成一行sftp命令行 sftp v email protected lt
  • 如何获取值的类型 (Java)

    我在网上看到的解决方案是有道理的 如果您知道变量的类型 那么您就知道其值的类型 Java 就是这样做的 但是 如果我有一个像这样的继承类系统 DynastyPQ base class FirstPQ inherited class 并以这种
  • 将数字转换为其字符串表示形式

    我正在开发一个简单的网络应用程序 其中我需要以字符串格式向用户显示数字 a Example 12 One Two or Twelve 20 minus Two zero or minus twenty 无论哪种方式都可以 我需要用 PHP
  • 如何从运行 iOS 9 的用户获取崩溃日志

    虽然我们以前能够在以下情况下获取崩溃日志用户与 iTunes Connect 同步 at Library Logs CrashReporter MobileDevice 现在大多数用户不这样做 因此 iOS9上获取崩溃日志的新流程是此处概述
  • Xcode 4.4.1 在 OSX Mavericks 下无法正常工作

    例子 iOS 3 1 3 的组织者显示 摘要丢失 键 它可能会因下一个崩溃数据而崩溃 未捕获异常 NSInternalInconsistencyException 未找到所需密钥 locatorclass 的扩展 Xcode Device
  • Cygwin 不支持 glibc

    Cygwin 常见问题解答包含以下 glibc 在哪里 的信息 Cygwin 不提供 glibc 它使用 newlib 来代替 它提供了很多 但不是全部 相同的功能 将 glibc 移植到 Cygwin 会很困难 我很惊讶并检查了发布包 因
  • RenderTranform 不进行渲染变换

    所以我有一个画布和一个椭圆 并调用一个方法来像这样移动椭圆 public void moveElipse1ToCoordinate Point point Action action gt TranslateTransform moveTo
  • 将 CSS 中的第一个 Div 移动到第二个 Div 下方

    我的 html 代码如下所示 A 包装div 百分比宽度 向左浮动 包含 一个包含文本和链接的 div 一个包含图像的 Div 问题 我想要保持上面的编码顺序 但为了用户体验 我想使用 CSS 反转 div 顺序以获得如下内容 注意 包装器
  • 100%安全的照片上传脚本

    问题很简单 如何用php制作100 安全的照片上传脚本 是否有任何教程可以显示所有可能的安全差距 不要让我看这个问题 因为他们只谈论尺寸 但我想确定的是 没有人可以上传 shell 和其他东西 因为这是一个大网站 需要100 安全的照片上传
  • Google 登录 JavaScript 客户端无法在 PWA 应用上运行

    从昨天开始 当我使用gapi auth2在Android上安装的PWA应用程序上进行Google登录时 该应用程序打开浏览器窗口来选择用户 但它仍然是空白的 Android 上 Chrome 浏览器上的同一页面照常打开用户选择 代码是相同的
  • 使用数组和字典在 Swift 中实现多重映射

    我正在尝试在 Swift 中实现一个基本的多重映射 这是一个相关的 非功能性的 片段 class Multimap
  • ggplot2 中的图例,删除级别

    My data df lt data frame sp c LETTERS 1 8 tr c NS LS NS LS LS HS HS HS bv c 14 5 11 5 6 21 5 4 2 4 8 av c 0 0 14 21 48 4
  • 具有自定义声明的 Firebase 存储规则

    我无法让 Firebase Storage 使用自定义规则和自定义声明 在我的 Python 管理面板中 我执行以下操作来创建用户并分配声明 client id Standard Auth import firebase admin fro
  • 如何在保留对 self 的引用的同时调用变异方法?

    我在借阅检查员那里遇到了麻烦 for item in self xxx iter self modify self but not xxx item 上面的代码有效before我将一些代码重构为modify self but not xxx
  • MySQL:按字母顺序获取多个列中的唯一值

    如果我的表看起来像这样 id colA colB colC 1 red blue yellow 2 orange red red 3 orange blue cyan 我运行什么 SELECT 查询才能返回结果 蓝色 青色 橙色 红色 黄色
  • 在 Node 4.3 中使用 Buffer.from 时出现 TypeError Base64 不是函数

    我正在使用标准 Amazon 系统映像 linux x64 在 Node 4 3 上本地调试 lambda 函数 当我运行该程序时 在将 Base64 字符串解码为 utf 8 的函数中出现错误 错误说 Unhandled rejectio
  • 预检响应具有无效的 HTTP 状态代码:401 角度

    使用 Angular 和 Spring Boot 我们尝试向我们的服务添加身份验证 但由于某种原因 我们无法 打开 并从我们知道有效的 url 中获取数据 角度 this getMismatches function return http
  • Mockito - @Spy 与 @Mock [重复]

    这个问题在这里已经有答案了 我知道间谍调用对象上的真实方法 而模拟调用双对象上的方法 除非有代码味道 否则还应避免间谍 但是 间谍是如何工作的以及我应该何时实际使用它们 它们与模拟有何不同 从技术上讲 模拟 和 间谍 都是一种特殊的 测试替