Dev*_*per 4 java junit mockito
我有一个 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
}
}
Run Code Online (Sandbox Code Playgroud)
我当前的 junit 测试使用以下内容:doReturn(null).when(mocker).execute(any(dummyEnum.class), anyObject());
但是,这将为 result1 和 result2 返回 null。我如何指定当使用ENUM_A执行execute()时,它返回一个字符串,Hello而使用ENUM_B执行execute()则返回一个字符串Goodbye
我已经在这里看到了答案,但我不想只说该类的任何实例,我想指定该类中的某个枚举。
使用eq()Matchers 类的方法(代表 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());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5741 次 |
| 最近记录: |