Я выполняю упорядоченные ожидания в имитациях носорогов, как описано ayende в этом сообщении. Мой код выглядит примерно так:
using (_mocks.Ordered())
{
Expect.Call(() => _myMock.CallA());
Expect.Call(() => _myMock.CallB(40));
Expect.Call(() => _myMock.CallA());
}
_mocks.ReplayAll();
_myObjectUnderTest.DoStuff();
_mocks.VerifyAll();
После этого я хотел бы добавить больше ожиданий и протестировать больше методов моего объекта. Я хочу сделать это, потому что у меня есть некоторые базовые методы тестирования, которые выполняют некоторую настройку на моем тестовом объекте, и я не хочу повторно тестировать эту функциональность, поэтому я просто вызываю предыдущий тестовый метод. Если я попытаюсь добавить больше ожиданий после VerifyAll (), я получу исключение: «Это действие недействительно, если фиктивный объект находится в состоянии проверки».
Отчасти моя проблема в том, что я действительно не понимаю, что делают все функции воспроизведения / проверки, я просто скопировал код. Я использую строгие макеты, поэтому любой установочный код должен соответствовать ожиданиям, иначе он не сработает. Я не хочу дублировать ожидания для моего установочного кода.
Есть ли способ сбросить макет, чтобы он был готов начать все сначала?