Java 在不知道方法调用参数的情况下使用mockito.when

Java 在不知道方法调用参数的情况下使用mockito.when,java,junit,mockito,Java,Junit,Mockito,我正在Junit测试一个类,必须创建一些Mockito mock对象。我感兴趣的代码行是 Mockito.when(emailer.sendEmail(INPUT GOES HERE)).thenReturn(true); emailer的sendEmail方法包含两个参数,我不确定它们是什么。是否有一种通配符可以在不知道参数是什么的情况下用于替换参数?如问题注释中所述 Matchers.anyClassName.class,这通常是您想要的。在Mockito 1.x中,它代表任何对象,无论其

我正在Junit测试一个类,必须创建一些Mockito mock对象。我感兴趣的代码行是

Mockito.when(emailer.sendEmail(INPUT GOES HERE)).thenReturn(true);

emailer的sendEmail方法包含两个参数,我不确定它们是什么。是否有一种通配符可以在不知道参数是什么的情况下用于替换参数?

如问题注释中所述

Matchers.anyClassName.class,这通常是您想要的。在Mockito 1.x中,它代表任何对象,无论其类型如何,但通过接收类,它通常可以避免使用强制转换。根据SO中的Mockito撰稿人的说法,这种行为在Mockito 2及更高版本中将发生变化,可能会像anyMyClass.class在英语中所建议的那样,表现得更像isA。 Matchers.any,这通常需要强制转换,对于基本体来说不是一个好主意。 Matchers.anyInt或Matchers.anyShort等,适用于原语。 因为字符串是一种常见的用例。 因为Mockito扩展了Matchers,这些方法中的大多数都可以在Mockito上使用,但是一些IDE在跨子类查找静态方法时遇到困难。您可以使用import static org.mockito.Matchers.*找到所有这些文件

阅读更多有关网站上提供给您的所有匹配器的信息


如果您遇到麻烦,或者想了解更多关于这些通配符在表面下如何工作的信息,.

如问题注释中所述

Matchers.anyClassName.class,这通常是您想要的。在Mockito 1.x中,它代表任何对象,无论其类型如何,但通过接收类,它通常可以避免使用强制转换。根据SO中的Mockito撰稿人的说法,这种行为在Mockito 2及更高版本中将发生变化,可能会像anyMyClass.class在英语中所建议的那样,表现得更像isA。 Matchers.any,这通常需要强制转换,对于基本体来说不是一个好主意。 Matchers.anyInt或Matchers.anyShort等,适用于原语。 因为字符串是一种常见的用例。 因为Mockito扩展了Matchers,这些方法中的大多数都可以在Mockito上使用,但是一些IDE在跨子类查找静态方法时遇到困难。您可以使用import static org.mockito.Matchers.*找到所有这些文件

阅读更多有关网站上提供给您的所有匹配器的信息

如果您遇到麻烦,或者想了解更多关于这些通配符在表面下如何工作的信息,.

Mockito.any中的一个。。。。检查第3节,参数匹配器。一个Mockito。任何。。。。检查第3节,参数匹配器。