Я пытаюсь издеваться над методом, любым экземпляром, который вызывает этот метод. Насколько я мог читать, это не может случиться с Mockito, и это должно быть сделано с PowerMockito, но я не могу понять, как это должно быть сделано. У меня естьМетод mocking для всех экземпляров класса с PowerMockito
public class B{
public void veryAnnoyingMethod(int i, short s){}
}
public class A{
public void veryImportantMethod(){
B newB = new B();
newB.veryAnnoyingMethod(i,s);
...
}
}
Я пытаюсь проверить veryImportantMethod()
и хочу, чтобы дразнить veryAnnoyingMethod()
. Я не хочу издеваться над конструктором, как описано здесь: Mocking methods of local scope objects with Mockito, потому что кроме veryAnnoyingMethod()
Мне нужен newB
полностью функциональный.
я придумал что-то вроде:
B dummyB = PowerMockito.spy(new B());
PowerMockito.doReturn(null).when(dummyB.veryAnnoyingMethod(Mockito.anyInt(), Mockito.anyShort()));
Но он бросает исключение, и я не думаю, что это то, что я на самом деле нужно.
UPDATE
После немного больше чтения, кажется, я должен использовать PowerMockito.stub
или PowerMockito.supress
. Так что я попытался следующие:
PowerMockito.stub(PowerMockito.method(B.class, "veryAnnoyingMethod", int.class, short.class)).toReturn(null);
или
PowerMockito.supress(PowerMockito.method(B.class, "veryAnnoyingMethod", int.class, short.class));
Но либо метод по-прежнему выполняется