我正在使用mockito 1.9.5并且想要测试我在github上发布的类。
问题是我需要嘲笑getStringFromExternalSources
方法。
MyClass code:
public class MyClass {
String a,b,c;
public MyClass(String a, String b, String c) {
this.a = a;
this.b = b;
this.c = c;
}
public String executeLogic (String d) {
return a + b + c + d;
}
public String getStringFromExternalSources (){
return "i got it from some place else";
}
}
我的current test:
@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {
@Test
public void MyClassTest() {
MyClass mc = Mockito.spy(new MyClass("a","b","c") );
Mockito.doReturn("mock").when(mc.executeLogic("real"));
Mockito.doReturn("externalString").when(mc.getStringFromExternalSources());
System.out.println(mc.executeLogic("real"));
}
}
任何指针?
答案 0 :(得分:0)
如何模拟getStringFromExternalSources
方法:
public class MyClassTest {
@Test
public void MyClassTest() {
MyClass mc = mock(MyClass.class);
when(mc.executeLogic("real").thenReturn("mock");
when(mc.getStringFromExternalSources().thenReturn("externalString");
System.out.println(mc.executeLogic("real"));
}
}
答案 1 :(得分:0)
你可以使用when()。thenReturn()构造来模拟任何方法。
ON (... RowNumber = 1)
因此,只要为模拟对象 mc 调用方法' getStringFromExternalSource()' ,就会返回"我从那里得到了它!" 。
如果你想测试具有不同参数的类,那么你可以使用 @Parameters annotation 与Parameterized runner一起为类提供参数,并在公共静态方法中提及参数Example:
MyClass mc = Mockito.spy(new MyClass("a","b","c"));
when(mc.getStringFromExternalSource()).thenReturn("I got it from there!!");
注释。一个粗略的例子是:
@Paramters