我是Java单元测试的新手,并开始使用Mockito。我正在使用doNothing ....,但是总是执行真正的方法。不知道我在想什么。
public abstract class MyApplication {
private Square s;
private Circle c;
public MyApplication(Square s, Circle c){
this.s = s;
this.c = c;
}
public void firstMethod() {
System.out.println("Starting first Method");
secondMethod();
System.out.println("Ending first Method");
}
public void secondMethod() {
//some business logic here
}
}
public class SmallApplication extends MyApplication {
private Square s;
private Circle c;
public SmallApplication(Square s, Circle c){
this.s = s;
this.c = c;
}
}
public class MyApplicationTest {
public void testFirstMethod() {
Square smock = mock(Square.class);
Circle cmock = mock(Circle.class);
SmallApplication app = new SmallApplication(smock, cmock);
SmallApplication appSpy = spy(app);
doNothing().when(appSpy).secondMethod();
appSpy.firstMethod();
}
}
我不希望执行seconMethod的业务逻辑,但是使用上面的代码,总是执行第二种方法业务逻辑。请帮忙。