java - Mockito - 使用预期参数验证方法调用但忽略某些字段

标签 java testing mockito

我正在模拟一个名为 EmailSender 的类,它有一个方法 sendEmail()它接受类电子邮件的参数。我正在尝试验证我的 mockEmailSender将调用 sendEmail用预期的 Email 函数一次这样的类:verify(mockEmailSender, times(1)).sendEmail(expectedEmail)

class Email {
   String title;
   List<String> receipients;
   EmailBody body;
}
我正在初始化预期的电子邮件对象,如下所示 Email expectedEmail = Email.builder().setRecipients(//example list).setTitle("Test title").setBody(//make this not matter)我怎样才能在忽略 body 领域的情况下进行这项工作?所以我只想检查 sendEmail()使用 expectedEmail 调用方法而expectedEmail具有我设置的所有字段,同时忽略某些字段,例如我不想明确设置的 body 字段。

最佳答案

ArgumentMatchers.refEq matcher 可以帮助您轻松忽略您不关心的字段:

verify(mockEmailSender, times(1)).sendEmail(refEq(expectedEmail, "body"));

关于java - Mockito - 使用预期参数验证方法调用但忽略某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69723432/

相关文章:

java - 错误 : java. lang.ArrayIndexOutOfBoundsException : 1, 如何处理

java - Android后台任务-如何访问返回值

.net - dotnet 测试 : how to include assembly name into the . trx 结果文件?

Eclipse 中 JAR 文件中的 Java 方法参数名称

java - 将字段标记为 transient 如何使序列化对象成为可能

testing - Grails 自定义 taglib 在集成测试期间无法使用自定义工件

java - TestNG 的群组

mockito - 我可以在 mockito 参数中混合一个匹配器和 1 个精确值吗

java - 使用mockito进行不需要的模拟

java - 测试返回类型为 void 的方法