【问题标题】:Why is the or-Matcher not working in my Mockito verify?为什么 or-Matcher 在我的 Mockito 验证中不起作用?
【发布时间】:2022-09-23 17:36:09
【问题描述】:

我想验证以下两个方法调用中的任何一个是否执行一次:

myLogger.logWarn(\"My 1st Warning Message\"); // depending on some randomness in my program,
myLogger.logWarn(\"My 2nd Warning Message\"); // one of these two get executed

我尝试了以下方法:

verify(myLogger).logWarn(or(\"My 1st Warning Message\", \"My 2nd Log Warning Message\"));

但是运行测试方法导致以下错误:

No matchers found for additional matcher Or(?)
-> at foobar.builder.StopBuilderTest.build(StopBuilderTest.java:141)

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
No matchers found for additional matcher Or(?)
-> at foobar.builder.StopBuilderTest.build(StopBuilderTest.java:141)

当我只测试单个方法调用时,如下所示..

verify(myLogger).logWarn(\"My 1st Warning Message\");

..它运行良好,当logWarn() 使用参数\"My 1st Warning Message\" 调用时,我的测试总是成功的。

    标签: java unit-testing mockito


    【解决方案1】:

    尝试这个:

     verify(myLogger).logWarn(or(eq("My 1st Warning Message"), eq("My 2nd Log Warning Message")));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 2017-07-03
      • 2018-02-03
      • 2021-06-24
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多