当前位置: 首页 > 面试题库 >

Mockito:如何匹配任何枚举参数

米项禹
2023-03-14
问题内容

我有这样声明的方法

private Long doThings(MyEnum enum, Long otherParam); 这个枚举

public enum MyEnum{
  VAL_A,
  VAL_B,
  VAL_C
}

问题:如何模拟doThings()通话?我无法比拟MyEnum

以下无效:

Mockito.when(object.doThings(Matchers.any(), Matchers.anyLong()))
        .thenReturn(123L);

问题答案:

Matchers.any(Class) 将达到目的:

Mockito.when(object.doThings(Matchers.any(MyEnum.class), Matchers.anyLong()))
    .thenReturn(123L);

附带说明:考虑使用Mockito静态导入:

import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;

模拟变得更短:

when(object.doThings(any(MyEnum.class), anyLong())).thenReturn(123L);


 类似资料:
  • 问题内容: 有没有办法匹配以下示例例程的任何类参数? 无论传递到哪个类,如何 始终 返回a ?以下尝试仅适用于匹配的特定情况。 编辑 :一种解决方案是 问题答案: 还有两种方法(请参阅我对@Tomasz Nurkiewicz的先前回答的评论): 第一个依据的事实是编译器根本不会让您传递错误的类型: 您会丢失准确的输入(),但可能会按需要使用。 第二个涉及更多,但如果您 确实 要确保to的参数是的或

  • 问题内容: 我正在从Android的本机代码接收long或int形式的返回值,我想将其转换或与enum匹配以用于处理目的。可能吗 ?怎么样? 问题答案: 如果您完全控制值和枚举,并且它们是顺序的,则可以使用枚举序号值:

  • 让我们看看一个需要诉诸于代码的场景,来考虑为何此时使用枚举更为合适且实用。假设我们要处理 IP 地址。目前被广泛使用的两个主要 IP 标准:IPv4(version four)和 IPv6(version six)。这是我们的程序可能会遇到的所有可能的 IP 地址类型:所以可以 枚举 出所有可能的值,这也正是此枚举名字的由来。 任何一个 IP 地址要么是 IPv4 的要么是 IPv6 的,而且不能

  • 我正在Java Spring/Hibernate中使用Swagger-UI。Swagger UI版本是2。 我很难使用枚举。

  • 问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S

  • 问题内容: 争论的Mockito匹配器(如,,,,和)从Hamcrest匹配器表现非常不同。 匹配器经常导致,即使在使用任何匹配器很长时间后执行的代码中也是如此。 匹配器遵循怪异的规则,例如,如果给定方法中的一个参数使用匹配器,则仅要求对所有参数使用Mockito匹配器。 当覆盖或使用时,匹配器可能导致 。 使用Mockito匹配器以某些方式重构代码会产生异常和意外行为,并且可能会完全失败。 为什