MVC 3: Как макетировать экземпляр WebViewPage <T>? - PullRequest
1 голос
/ 21 октября 2011

В настоящее время я использую фреймворк Rhino Mocks. Как вы макетируете экземпляр WebViewPageBase И его модель с помощью Rhino Mocks или любой другой фреймворковой среды? Когда я запускаю следующий модульный тест, при попытке доступа к свойству WebViewPageBase.Model выдается исключение.

        var repo = new Rhino.Mocks.MockRepository();

        System.Web.Mvc.WebViewPage<IEnumerable<Tuple<string>>> page = repo.DynamicMock<System.Web.Mvc.WebViewPage<IEnumerable<Tuple<string>>>>();

        Assert.IsNotNull(page.Model);//exception thrown, not a fail on Assert

Будет ли это легче сделать с помощью другой среды для насмешек?

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Скотт Хансельман написал отличную статью о насмешливых классах MVC 3 с Rhino здесь:

http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx

0 голосов
/ 21 октября 2011

Вы уверены, что хотите получить страницу просмотра таким образом, поскольку у нее не будет модели и т. Д., Поскольку она не все настроена.

В более типичном случае вы будете тестировать контроллер и проверять его возвращаемое значениеесли бы вы захотели это проверить, он содержал бы предоставленный html.

Если вы действительно хотите выполнить модульное тестирование, то я не вижу в вашем коде ничего неправильного по сути.Вы можете попробовать Moq вместо Rhino, что я и использую.

Этот вопрос также может относиться к вашей проблеме, без учета того, как Rhino обрабатывает абстрактные классы:

Подбирайте поведение по умолчанию для абстрактного класса с помощьюRhino

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...