【发布时间】:2020-02-07 18:05:03
【问题描述】:
我有一个函数 func(),它接受 UUID 作为参数。我正在做一个单元测试,我需要为传递给 func() 的任何 UUID 值返回一个特定值。如何使它适用于任何 UUID 类型值(就像 anyString() 用于任何字符串,anyInt() 用于任何整数等)?
我已经试过了:
when(obj.func(any(UUID.class)).thenReturn(null);
它给出以下错误:
The method any(Class<UUID>) is ambiguous for the type <Test_Class_Name>
其中 Test_Class_Name 是我正在编写单元测试的类的名称。
func() 是一个重载函数:func(String) 和 func(UUID)
【问题讨论】:
-
您是否尝试过显式强制转换以便轻松找到正确的方法? (即
when(obj.func((UUID) any(UUID.class)).thenReturn(null);) -
是的,没有用。
-
你使用的是什么版本的 Mockito?
-
正如 cmets 中所指出的,任何(Matchers 和 CoreMatchers)的多次导入都是问题所在。谢谢。
标签: java generics junit mockito testng