加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 指定在Mockito doReturn方法中传递给方法的特定枚举

发布时间:2020-12-15 04:41:22 所属栏目:Java 来源:网络整理
导读:我有一个junit测试,我在一个类中有一个对象被模拟.让我们用名为mocker的@Mock of MyManager来调用Mocker类. 示例类: public class Mocker { private MyManager myManager; public void myMethod() { String x = "test"; final String result1 = this.myMana
我有一个junit测试,我在一个类中有一个对象被模拟.让我们用名为mocker的@Mock of MyManager来调用Mocker类.

示例类:

public class Mocker {
   private MyManager myManager;

   public void myMethod() {
       String x = "test";
       final String result1 =  this.myManager.execute(dummyEnum.ENUM_A,x);
       final String result2 =  this.myManager.execute(dummyEnum.ENUM_B,x);

       if(result1 == true) {
           //Do something
       }
       if(result2 == true) {
           //Do something else
       }
   }

   public enum dummyEnum {
        ENUM_A,ENUM_B
   }
}

我当前的junit测试使用以下内容:doReturn(null).when(mocker).execute(any(dummyEnum.class),anyObject());

但是,对于result1和amp;都会返回null.结果2.如何指定当使用ENUM_A执行execute()时它返回一个Hello的字符串和带有ENUM_B的execute()返回一个Goodbye字符串

我已经看过answer here,但我不想只说出该类的任何实例,我想从该类中指定某个枚举.

解决方法

使用Matchers类的eq()方法(代表equals).

Mockito.doReturn("Hello").when(mock).execute(Matchers.eq(dummyEnum.ENUM_A),anyObject());

Mockito.doReturn("Goodbye").when(mock).execute(Matchers.eq(dummyEnum.ENUM_B),anyObject());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读