gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 17:13:03 25 4
gpt4 key购买 nike

我正在 Junit 测试一个类,并且必须创建一些 Mockito 模拟对象。我感兴趣的代码行是这样的

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

电子邮件发送器的 sendEmail() 方法接受两个参数,但我不确定它们是什么。是否有一种通配符可以用来替换参数而不知道它们是什么?

最佳答案

正如问题评论中提到的。

  • Matchers.any(ClassName.class),这通常就是您想要的。在 Mockito 1.x 中,这代表任何对象,无论其类型如何,但通过接收类,它通常可以避免强制转换的需要。 (根据 Mockito 贡献者 Brice 在 SO comment 中的说法,这种行为将在 Mockito 2 及更高版本中发生变化,大概表现得更像 isA as any(MyClass.class) 会用英语建议。)
  • Matchers.any(),通常需要强制转换,对于基元来说不是一个好主意。
  • Matchers.anyInt()Matchers.anyShort() (等),这对于基元很有用。
  • Matchers.anyString(),因为字符串是常见用例。

由于 Mockito 扩展了 Matchers,因此大多数方法都可以在 Mockito 上使用,但某些 IDE 无法跨子类查找静态方法。您可以使用 import static org.mockito.Matchers.*; 找到所有这些。

有关所有可用匹配器的更多信息,请访问 org.mockito.Matchers documentation .

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

关于java - 在不知道方法调用的参数的情况下使用mockito.when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23142886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com