【问题标题】:Mockito - verify a method call with expected argument but ignore certain fieldsMockito - 使用预期参数验证方法调用但忽略某些字段
【发布时间】:2021-10-26 12:49:40
【问题描述】:

我正在模拟一个名为 EmailSender 的类,它有一个方法 sendEmail(),它接收类 Email 的参数。我正在尝试验证我的mockEmailSender 将使用预期的Email 类调用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 字段的情况下完成这项工作?所以我只想检查 sendEmail() 方法是使用 expectedEmail 调用的,并且 expectedEmail 具有我设置的所有字段,同时忽略某些字段,例如我不希望显式设置的 body 字段.

【问题讨论】:

    标签: java testing mockito


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-18
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      相关资源
      最近更新 更多