gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 01:49:20 26 4
gpt4 key购买 nike

我有一个 junit 测试,其中我在类中模拟了一个对象。让我们用名为 mocker 的 MyManager 的 @Mock 调用类 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 和 result2 返回 null。 我如何指定当使用 ENUM_A 执行 execute() 时它返回 Hello 的字符串,使用 ENUM_B 的 execute() 返回字符串 Goodbye

我看到了 answer here但我不想只说那个类的任何实例,我想从那个类中指定一个特定的枚举。

最佳答案

使用 Matchers 类的 eq() 方法(代表等于)。

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

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

关于java - 在 Mockito doReturn 方法中指定传递给方法的特定枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47817522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com