我有这样声明的方法
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匹配器以某些方式重构代码会产生异常和意外行为,并且可能会完全失败。 为什