Mockito - 使用预期参数验证方法调用但忽略某些字段
Mockito - verify a method call with expected argument but ignore certain fields
我正在模拟一个名为 EmailSender 的 class,它有一个方法 sendEmail()
接受 class Email 的参数。我正在尝试验证我的 mockEmailSender
是否会使用预期的 Email
class 调用一次 sendEmail
函数: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 字段的情况下完成这项工作?所以我只想检查是否使用 expectedEmail
调用了 sendEmail()
方法,并且 expectedEmail
是否具有我设置的所有字段,同时忽略了某些字段,例如我不想明确设置。
ArgumentMatchers.refEq
匹配器可以帮助您轻松忽略不关心的字段:
verify(mockEmailSender, times(1)).sendEmail(refEq(expectedEmail, "body"));
我正在模拟一个名为 EmailSender 的 class,它有一个方法 sendEmail()
接受 class Email 的参数。我正在尝试验证我的 mockEmailSender
是否会使用预期的 Email
class 调用一次 sendEmail
函数: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 字段的情况下完成这项工作?所以我只想检查是否使用 expectedEmail
调用了 sendEmail()
方法,并且 expectedEmail
是否具有我设置的所有字段,同时忽略了某些字段,例如我不想明确设置。
ArgumentMatchers.refEq
匹配器可以帮助您轻松忽略不关心的字段:
verify(mockEmailSender, times(1)).sendEmail(refEq(expectedEmail, "body"));