У меня есть метод издевающегося объекта, который можно назвать несколько раз (подумайте о рекурсии). Метод определяется следующим образом:Как бросать исключение только в том случае, когда вызывается метод издевательства?
public void doCommit() { }
Для того, чтобы сказать, что это потерпеть неудачу я использую это соглашение:
doThrow(new RuntimeException()).when(mMockedObject).doCommit();
Это правда, делает метод бросить это исключение каждый раз, когда вызывается. Как я могу сделать это так, чтобы он, например, выдавал его в первый и третий раз? Это означает, что, например, второе и четвертое время, которое он просто возвращает, не выбрасывая исключение. Обратите внимание, что я не являюсь автором doCommit(), и у меня нет исходного кода, который я могу изменить.
Отлично, рад, что я указал тебе в правильном направлении. –
с 'BDDMockito' это будет' willThrow (новое RuntimeException()). WillNothing(). WillThrow (...). WillNothing(). Given (mMockedObject) .doCommit(); ' – ArtB