我正在尝试测试一个方法是否调用同一类中的另一个方法。例子:
public class Foo {
public void bar(String a){
switch(a) {
case "callBaz":
baz(a);
break;
case "callBat":
bat(a);
break;
default:
System.out.println("Input was " + a);
}
}
public void baz(String b){
System.out.println(b);
}
public void bat(String c){
System.out.println(c);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在类本身上进行模拟验证:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class FooTest {
@Test
public void testBazCalledFromBar(){
Foo foo = new Foo();
foo.bar("callBaz");
Mockito.verify(foo).baz("callBaz");
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了例外:
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to verify() is of type Foo and is not …Run Code Online (Sandbox Code Playgroud)