在mockito中模拟通用scala方法

2024-03-07

我正在开发一个 Scala 项目,使用 Mockito 作为模拟框架。我想模拟以下通用 Scala 方法:

def parseXml[T: ClassTag](xmlUrl: URL, xsdUrl: Option[URL]): Option[T] 

当嘲笑时,我假设我可以使用 Mockito 的匹配器,如下所示:

when(xmlFileUnmarshallerMock.parseXml[org.mockito.Matchers.any[AddressBook]](org.mockito.Matchers.any[URL], org.mockito.Matchers.any[Option[URL]]))
    .thenReturn(Some(defaultAddressBook))

但它无法编译,然后我尝试使用 [Any] 和 [AddressBook],但两者都会导致以下错误:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:  Invalid use of argument matchers! 3 matchers expected, 2 recorded.

问题是你的parseXml函数实际上需要三个参数,而不是两个,这就是T : ClassTag语法是以下形式的简写:

def parseXml[T](xmlUrl: URL, xsdUrl: Option[URL])(implicit classTag: ClassTag[T]): Option[T] 

当您尝试模拟它时,scala 隐式提供第三个参数,但mockito 不接受它,因为它不允许在同一个存根调用中混合匹配器和非匹配器。

最重要的是,您必须显式提供第三个参数,并将其设为匹配器:

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

在mockito中模拟通用scala方法 的相关文章

  • 将参数传递给模板类型的 C# 泛型 new()

    添加到列表时 我试图通过其构造函数创建一个 T 类型的新对象 我收到编译错误 错误消息是 T 创建变量实例时无法提供参数 但我的类确实有一个构造函数参数 我怎样才能做到这一点 public static string GetAllItems
  • Scala apply 方法调用,因为括号与隐式参数冲突

    Cay Horstmann 的书 Scala for the Impressive 中有一段关于 apply 方法的注释 有时 表示法会与另一个 Scala 功能发生冲突 隐式参数 例如 表达式 Bonjour sorted 3 产生错误
  • 在 Scala 中反转地图的优雅方法

    目前正在学习Scala 需要反转Map 来进行一些反转值 gt 键查找 我一直在寻找一种简单的方法来做到这一点 但只想到了 Map origMap map kvp gt kvp 2 gt kvp 1 有人有更优雅的方法吗 假设值是唯一的 则
  • 如何在每行中添加行号?

    假设这些是我的数据 Maps and Reduces are two phases of solving a query in HDFS Map is responsible to read data from input location
  • 所有junit测试后的清理

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

    我正在尝试测试当通过简单的布尔值更新状态时 在父组件中其子组件是否正确呈现 在父组件下面 class Parent extends Component render const isReady this state const props
  • 使用 Mockito 进行 Android 仪器测试 [重复]

    这个问题在这里已经有答案了 我正在尝试将 Mockito 框架与 android 仪器测试一起使用 但无法正确初始化它 我有以下测试类 class MainKontorTest extends ActivityInstrumentation
  • Angular ui 路由器单元测试(状态到 url)

    我在应用程序中对路由器进行单元测试时遇到一些麻烦 该应用程序是基于 Angular ui 路由器构建的 我想要测试的是状态转换是否适当地更改了 URL 稍后会有更复杂的测试 但这就是我开始的地方 这是我的应用程序代码的相关部分 angula
  • Java 中没有泛型参数的泛型方法

    在 C 中我实际上可以这样做 This is C static T SomeMethod
  • 如何从DataFrame中获取最后一行?

    我有一个DataFrame 该DataFrame有两列 value 和 timestamp timestmp 是有序的 我想获取DataFrame的最后一行 我该怎么办 这是我的输入 value timestamp 1 1 4 2 3 3
  • Akka Stream - 根据 Flow 中的元素选择 Sink

    我正在使用 Akka 流创建一个简单的消息传递服务 该服务就像邮件递送一样 其中来自源的元素包括destination and content like case class Message destination String conte
  • 如何在 Bean Validation 1.0 中构造 ConstraintViolationException?

    我对 javax validation API 感到困惑 我正在编写一个简单的测试来理解它 Sample sample new Sample Set
  • Kotlin 中扩展函数的多态性

    我有几个我无法控制的课程 我已经在几个常见的 属性 上创建了几个同名的扩展方法 名称相同的扩展函数始终返回相同的值类型 尽管针对每种类型的接收器以不同的方式计算 这里有一个简化的基于仅一个属性的内置类型的示例 DOES NOT COMPIL
  • 如何通过数据框中数组列的索引计算平均值

    我正在使用 Spark 2 2 我有一个关于合作的基本问题ArrayType 我没有找到可以使用的内置聚合函数 Given a DataFrame有一个柱子id和一列values of ArrayType 我们想按 id 分组 然后按索引计
  • 使用 Karma 运行的 Mocha 单元测试 - did() 未定义

    我正在尝试使用 Mocha 编写的测试来运行 Karma 它们确实可以工作 但我无法使用 did 方法来实现异步测试 这本质上使这些工具对我来说毫无用处 我缺少什么 karma conf js module exports function
  • Scala 将集合转变为按键映射的最佳方法?

    如果我有一个收藏c类型的T并且有一个属性p on T 类型P 说 最好的方法是什么按提取键映射 val c Collection T val m Map P T 一种方法如下 m new HashMap P T c foreach t gt
  • 如何不让 Gradle 立即退出 Scala 的 REPL?

    这些简单的线条在build gradle暴露一个repl理想情况下会启动 scala REPL 的任务 点燃并保持活力就是这样 repl 加载后 它立即收到 quit 命令并退出 的重要部分build gradle dependencies
  • 具有多个输入的单元测试

    我一直在尝试进行单元测试 并且正在尝试处理一个函数的单元测试 该函数的返回值取决于一堆参数 不过信息量有点大 有点让人不知所措 考虑以下 我有课Article 其中有价格集合 它有一个方法GetCurrentPrice它根据一些规则确定当前
  • 如何为每个用户或系统范围配置 Ivy 缓存目录?

    我在用SBT http www scala sbt org 作为我构建 Scala 项目的构建工具 我的问题是 我无法配置 SBT 将依赖项下载到我的用户主目录 因此 我正在寻找每个用户甚至更好的系统范围设置来告诉 SBT 将 Ivy 缓存
  • 用于测试对象类型的通用 Swift 函数

    我正在尝试编写一个函数 该函数接受一个对象和一个类型作为参数 并返回一个布尔值 指示该对象是否属于给定类型 似乎没有 Type 类型 所以我不知道如何做到这一点 我能做的最好的就是 func objectIsType

随机推荐

  • 如何在主窗体之前显示设置配置的窗体?

    在我的项目中我有两个表单 form1 form2 form1是配置表单 我想显示 Form1 当我们单击 Button1 时 然后显示 Form2 和释放 释放 Form1 我该怎么做 我用这个代码 但是这个项目启动然后自动退出 一位朋友说
  • 双打会遭受溢出吗?

    双精度浮点数或浮点数是否可能发生溢出 环绕 如果在 x86 或 x64 硬件上达到最大值 或最小值 会发生什么情况 在符合 IEEE 754 标准的系统上 溢出会导致特殊的 无穷大 或 负无穷大 值 超过该值 任何进一步的增量都将不起作用
  • 词汇分散图是seaborn

    我正在使用 seaborn 模块来生成类似于下面示例的图 import pandas as pd import matplotlib pyplot as plt import numpy as np import seaborn as sn
  • 如何将特定文件类型从一个文件夹复制到另一个文件夹

    如何将特定文件类型从一个文件夹复制到另一个文件夹 同时保留文件夹结构 以下批处理命令能够将特定文件类型复制到文件夹 但无法保留文件夹结构 for R c source f in cpp h do copy f x destination 我
  • 每个 Java 应用程序是否有一个 JVM?

    所有运行的 Java 应用程序都使用相同的 JVM 还是 每个 Java 应用程序一个 JVM 适用 假设应用程序是 IntelliJ IDEA 服务器和 NetBeans 此外 每个Java应用程序分配的JVM和使用的进程之间是否有任何联
  • AS3 - 缩放位图数据

    我想将 BitmapData 缩放到不同的大小 例如 200 400 600 和 800 有什么好的方法可以做到这一点 你不能直接缩放BitmapData但你可以对其进行缩放克隆 这是一个缩放的简单示例BitmapData package
  • 在 pkg-config 搜索路径中找不到 OpenCV 包

    我已经按照中的说明安装了 OpenCVhttps help ubuntu com community OpenCV https help ubuntu com community OpenCV sudo su sudo apt get in
  • 检索当前正在运行的应用程序的导航历史记录

    我想要一种方法来向用户显示他当前在应用程序中的位置 例如 如果我有activity A activity B activity C等等 如果他导航到activity E 例如 他应该能够看到他如何登陆当前屏幕的历史记录 从Home gt E
  • ASP.Net MVC 4 捆绑包

    我见过的很多代码都引用了这个 section Scripts Scripts Render bundles jqueryval 这很棒 而且它可以工作 如果包含 某些东西 我是否必须添加参考才能获取这些 使用 NuGet 复制 DLL 这是
  • C++ 全局初始化可以有多懒?

    我习惯于认为全局 静态类成员的所有初始化都发生在 main 的第一行之前 但我最近在某处读到该标准允许稍后进行初始化以 协助模块的动态加载 在动态链接时我可以看到这是真的 我不希望在 dlopen 库之前初始化库中初始化的全局变量 然而 在
  • 有没有办法在 return 语句之后做更多的工作?

    我有点好奇返回结果后是否可以在函数中做更多的工作 基本上 我正在使用金字塔框架 只是用 python 编码 创建一个网站 在处理输入后 我返回变量来渲染页面 但有时我想在渲染页面后做更多工作 例如 您访问我的网站并更新您的个人资料 您所关心
  • BigQuery 数据集通配符?

    我用过tableBigQuery 中的通配符功能 但是否可以使用通配符跨多个查询datasets在一个项目内 不 目前这是不可能的 技术原因之一是 如果表通配符跨越数据集 查找涉及的表会更加困难
  • html文本框形式不允许输入

    html 表单中是否有任何类不允许您在该文本框中输入或更改值 但你可以看到它的内容 例如下面的代码将允许你看到mysql数据库中记录的内容 但我想要的是它不被编辑 我将在下面的代码中添加什么 以便用户不会编辑其内容 tr td font s
  • 使用 ListAdapter 填充 ScrollView 布局内的 LinearLayout

    我面临一个非常常见的问题 我布置了一个活动 现在发现它应该显示其中的一些项目ScrollView 通常的方法是使用现有的ListAdapter 将其连接到ListView and BOOM我会有我的物品清单 BUT你不应该放置一个嵌套的Li
  • 如何在 Eclipse 中指定预处理器指令?

    Eclipse 中如何为不同的配置指定预处理器指令 例如 如果我有多个电源 应该以不同的配置运行并指定 ifdef Problem1 main func endif Problem1 请注意 这是托管 makefile 的情况 The 文档
  • 同位素 v2 网格 - 多个过滤器 - 隐藏空过滤器

    我当前的同位素网格有两个下拉过滤器 用于对网格项目进行排序 第一个过滤器是菜单类型 第二个过滤器是饮料类型 然而 每种菜单类型并不包含所有饮料类型 因此当选择某些过滤器配置时 不会显示任何结果 这是正确的 但我想通过当用户选择第一个过滤器时
  • jquery 不从 javascript 函数调用 Web 方法

    长期从事 WinForm 程序员 但对 Web 编程领域还是个新手 我有 Visual Studio 2010 并且创建了一个新的网站项目 我似乎无法让 ajax 调用我创建的 webmethod 当我单击页面上的按钮时 什么也没有发生 当
  • 使用 Anaconda 设置 Hydrogen 和 Atom 管理 python 安装

    我已将我的 python 3 可执行文件添加到系统路径 违背 Anaconda 的建议 以尝试让 Hydrogen 以及实际上任何 Atom 扩展 插件 在 Atom 中运行代码行或代码块 脚本 原子插件似乎可以工作 我选择一些代码并输入c
  • npm 错误!致命:无法找到“https”的远程帮助程序

    我在跑npm install在远程会话的 React Native 项目中 更具体地说 这npm install是我运行的构建脚本的一部分VSTS代理 https github com microsoft vsts agent 我遇到了这个
  • 在mockito中模拟通用scala方法

    我正在开发一个 Scala 项目 使用 Mockito 作为模拟框架 我想模拟以下通用 Scala 方法 def parseXml T ClassTag xmlUrl URL xsdUrl Option URL Option T 当嘲笑时