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