Я использую Mockito для написания модульного теста на Java, и я хотел бы убедиться, что определенный метод является последним , вызываемым для объекта.
Я делаю что-то подобное в тестируемом коде:
row.setSomething(value);
row.setSomethingElse(anotherValue);
row.editABunchMoreStuff();
row.saveToDatabase();
В моем макете меня не волнует порядок, в котором я редактирую все в строке, но очень важно, чтобы я не пытался что-то сделать с ним после того, как я его сохранил , Есть ли хороший способ сделать это?
Обратите внимание, что я не ищу verifyNoMoreInteractions: он не подтверждает, что saveToDatabase является последней вызываемой вещью, и также завершается ошибкой, если я вызываю что-либо в строке, которую я не проверяю явно. Я хотел бы иметь возможность сказать что-то вроде:
verify(row).setSomething(value);
verify(row).setSomethingElse(anotherValue);
verifyTheLastThingCalledOn(row).saveToDatabase();
Если это поможет, я переключаюсь на Mockito из теста JMock, который сделал это:
row.expects(once()).method("saveToDatabase").id("save");
row.expects(never()).method(ANYTHING).after("save");