如何仅在第一次调用模拟方法时抛出异常?

2024-01-08

我有一个可以多次调用的模拟对象的方法(想想递归)。该方法定义如下:

public void doCommit() { }

为了让它失败,我使用这个约定:

doThrow(new RuntimeException()).when(mMockedObject).doCommit();

但这使得该方法每次调用时都会抛出此异常。例如,我怎样才能使它只在第一次和第三次被调用时抛出它?这意味着,例如,第二次和第四次它只是返回而不抛出异常。请注意,我不是 doCommit() 的作者,也没有可以更改的源代码。


我想通了(有伊戈尔的一些提示)。这是对连续的 void 方法调用进行存根的方法:

doThrow(new RuntimeException()).doNothing().doThrow(...).doNothing().when(mMockedObject).doCommit();

谢谢伊戈尔!

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

如何仅在第一次调用模拟方法时抛出异常? 的相关文章

随机推荐

  • SwiftUI:ViewModifier,其中内容是图像

    我收到错误 Type PlayButtonModifier does not conform to protocol ViewModifier 我不明白为什么 更重要的是 我不明白如何正确地做到这一点 我只是尝试创建一个ViewModifi
  • MongoDB 4.x 实时同步到 ElasticSearch 6.x +

    我正在尝试找到一种简单的方法将 mongoDB 4 x 中的数据同步到 elasticsearch 6 x 我的用例是 Elasticsearch 支持但 mongodb 不支持的部分文本搜索 MongoDB 是我的应用程序的主要数据库 我
  • 使用node.js从输入中获取密码

    如何使用node js从输入中获取密码 这意味着您不应该输出在控制台中输入的密码 您可以使用read https www npmjs com package read module 披露 我写的 为了这 在你的外壳中 npm install
  • python 中的块作用域 - 与函数内部的 javascript 提升类似吗?

    我目前正在尝试理解Python中的这段代码 def foo a if a 12 var Same else var different 我阅读并理解了 python 不支持基于块的作用域这一事实 因此 函数内创建的所有内容 无论是在循环内还
  • 如何使用 Akka HTTP 表示表单数据请求?

    我想创建一个表单数据http请求脸书API https developers facebook com docs graph api video uploads使用 Akka HTTP 在curl中 请求示例如下所示 curl X POST
  • 检查数据库连接,否则显示消息

    我想检查该网站是否可以连接到 mySQL 如果没有 我想显示一个错误 指出用户应该在几分钟内尝试再次访问该页面 我真的不知道该怎么做 任何帮助将不胜感激 string mysql error resource link identifier
  • 使用 firebug 查找 JavaScript 中的内存泄漏?

    是否有适用于 Firefox 的附加组件可以用来找出部分 JavaScript 导致内存泄漏的情况 我对 Firefox 没有任何了解 但 Chrome 中的 webkit 检查器有一个内置的分析器 非常适合此类事情 作为一个额外的好处 它
  • 在Python中加载大文件

    我正在使用在 Ubuntu 9 04 上运行的 Python 2 6 2 GCC 4 3 3 我需要使用 Python 脚本逐行读取一个大数据文件 1GB gt 300 万行 我尝试了以下方法 发现它占用了很大的内存空间 3GB for l
  • 正则表达式,匹配不带“http://”和任何其他“/”的 url

    我环顾四周 但可能我无法使用正确的关键字 谷歌 所以我在这里 我需要将 url 剥离协议与第一个 相匹配 Target 匹配从 http 到第一个 可能是最后一个 不存在 或到结尾的第一个子字符串 那么问题来了 我写了这个正则表达式 但这个
  • 预定义类型“System.Runtime.CompilerServices.IsExternalInit”未定义或导入[重复]

    这个问题在这里已经有答案了 我在使用 Visual Studio 2019 Preview 测试 C 9 0 的新功能时一直遇到这个问题 我正在测试 init setter 但编译器显示错误并显示以下消息 错误 CS0518 未定义或导入预
  • 通过 Exchange EWS API 批准电子邮件

    我遇到一种情况 我需要将邮件重新路由到另一个作为主持人的邮箱 以编程方式 有没有办法批准我在主持人邮箱中收到的消息 我没有看到 EWS 对此有明确的支持 微软还有其他 API 类型支持这个吗 这不是官方批准的方式 但以下解决方法可以帮助我批
  • jQuery 增量读取 AJAX 流?

    我读过了这个问题 https stackoverflow com questions 6093103 jquery ajax display data as it comes in但它并不能完全回答我的问题 不幸的是 自从我上次查看 AJA
  • 找不到类型或命名空间 AppServiceConnection

    我无法找到在新计算机上编译的解决方案 该解决方案包含一个与控制台应用程序打包在一起的 UWP 应用程序 UWP 应用程序通过以下方式与控制台应用程序进行通信应用服务连接 https learn microsoft com en us uwp
  • 覆盖moment js默认的无效日期文本

    我如何覆盖 moment js var defaultInvalidDate Invalid date 无需更改 moment js 文件 就像我的网站使用 Site css 覆盖某些 bootstrap css 样式一样 所以当 boot
  • 使用 SFINAE 检测 C++ 中类型的 POD 性

    这里原来的标题是VS2005 C 中 SFINAE 错误的解决方法 这是暂时使用 SFINAE 来等效 TR1 中存在的 is pod 模板类 在 VS2005 中还没有 TR1 应该有它的value当模板参数是 POD 类型 包括基本类型
  • Ansible SSH 转发似乎不适用于 Vagrant

    好吧 奇怪的问题 我有 SSH 转发与 Vagrant 一起使用 但我试图在使用 Ansible 作为 Vagrant 配置程序时让它工作 我准确地找到了 Ansible 正在执行的内容 并亲自从命令行尝试了它 果然 它也失败了 commo
  • 需要有关 Twitter 小部件的帮助

    我创建了一个 jquery 插件 它在左侧放置一个侧边栏以显示社交媒体内容 我有下面的变量 它是内容的来源 我正在尝试使用该小部件拉入 twitter feed 但我不断收到错误 TWTR 未定义 任何想法如何解决这一问题 该页面正在调用我
  • 使用 Swift 转义 unicode 字符,即 \u1234

    在 xcode 6 中使用 JSON 和 swift 时 我遇到特殊字符问题 我在 Cocoa objective C 中找到了这些代码来解决一些转换重音的问题 但无法使其在 Swift 中工作 关于如何使用它有什么建议吗 最好的替代建议也
  • Logstash 索引文本文件

    我想在 Elasticsearch 中导入一个文本文件 该文本文件每行包含 3 个值 经过几个小时的努力 我还是没有完成 非常感谢您的帮助 安装了 Logstash 的 Elasticsearch 5 4 0 样本数据 username e
  • 如何仅在第一次调用模拟方法时抛出异常?

    我有一个可以多次调用的模拟对象的方法 想想递归 该方法定义如下 public void doCommit 为了让它失败 我使用这个约定 doThrow new RuntimeException when mMockedObject doCo