Будучи новичком в RhinoMocks и модульном тестировании, я столкнулся с проблемой, решение которой я не могу найти (независимо от того, сколько документации я читал).
Проблема в следующем: я создал интерфейс, который предоставляет 5 событий (для использования в представлении в ASP.NET и шаблоне надзорного контроллера MVP ... Я знаю, я должен использовать MVC, но это совсем другое проблема). В любом случае, я хочу проверить, что, когда в представлении срабатывает определенное событие, мы назовем его «IsLoaded», что вызывается метод внутри моего Presenter и, используя внедрение зависимостей, значение возвращается из зависимости и устанавливается на вид. Вот где начинается проблема: когда я использую Expect.Call (Dependency.GetInfo ()). Return (SomeList), Call никогда не выполняется (без вызова метода mock.ReplayAll ()). Что ж, когда я вызываю метод ReplayAll, я получаю ExpectationExceptions из-за подписки объекта Presenter на другие события, предоставляемые интерфейсом просмотра.
Итак, чтобы я мог проверить, что IView.IsLoaded сработал, я хочу убедиться, что IView.ListOfSomething был обновлен в соответствии со списком, который я передал через Expect.Call (). Однако, когда я устанавливаю ожидание, другие подписки на события (которые происходят прямо из конструктора для Presenter) не соответствуют ожиданиям # 0 теста. Я получаю следующее: view.Save + = this.SaveNewList подбрасывает исключение RhinoMocks ExpectationViolationException.
Мой вопрос на миллион долларов таков: нужно ли мне устанавливать ожидания для ВСЕХ моих событий (через [Setup]), или я что-то упускаю / не понимаю в том, как работает Unit Testing или RhinoMocks?
Имейте в виду, что я чрезвычайно новичок в модульном тестировании и, следовательно, в RhinoMocks. Если окажется, что я не понимаю, о чем говорю, не стесняйтесь указать на это.