Подтвердить что ты не робот

Как игнорировать несколько вызовов метода void внутри метода void в Mockito

Я тестирую метод void, который вызывает вызов нескольких других методов void в классе (все эти методы находятся в одном классе). Метод - это что-то в этом роде...

public void methodToTest() {
   methodA();
   methodB();
}

void methodA() {
   methodA1();
   methodA2();
   methodA3();
}

То, что я хотел бы сделать, это вызвать methodA() выше, чтобы ничего не делать. То есть, я хочу, чтобы methodA() был в основном таким:

void methodA() { }

Я пробовал как doThrow(), так и doAnswer() on methodA() безрезультатно. Как будто они оба полностью игнорируются.

Пример того, что я пробовал...

doThrow(new RuntimeException()).when(mockedClass).methodA();

Есть ли способ сделать это, используя Mockito? Я не могу изменить класс, который будет изменен.

4b9b3361

Ответ 1

Если вы хотите, чтобы метод B все еще выполнялся, а методA ничего не делает. Это сделает следующее:

TestClass spy = spy(new TestClass());
doNothing().when(spy).methodA();
spy.methodToTest();