ASP.NET MVC — фиктивное членство для тестирования контроллера

Я не знаю, как имитировать членство в ASP.NET для моего теста контроллера.

Код контроллера:

MembershipUser username = Membership.GetUser();
string UserID = username.UserName.ToString(); 

Кто-нибудь знает, как издеваться над этим для теста контроллера? Я использую RhinoMocks.


person Ros    schedule 18.03.2009    source источник


Ответы (3)


Я начал работать над чем-то вроде этого. Вместо того, чтобы делать настоящий макет, я создал FakeMembershipProvider, который просто реализует минимум MembershipProvider, который мне нужен, и предоставляет способ установить пользователей и тому подобное. Я делаю то же самое для RoleProvider. Затем я установил App.config для своего тестового проекта, чтобы он использовал их в качестве поставщиков.

Пока, кажется, работает хорошо.

person Michael Johnson    schedule 30.10.2009

Я бы посмотрел серию MVS StoreFronthttp://www.asp.net/learn/mvc-videos/

Для одного на Mocking -

http://www.asp.net/learn/mvc-videos/video-365.aspx

И членство http://www.asp.net/learn/mvc-videos/video-372.aspx

Один для членства и просмотра рефакторинга с OpenID

http://www.asp.net/learn/mvc-videos/video-425.aspx

person Community    schedule 18.03.2009

Чтобы издеваться над объектами, связанными со статическим классом Membership, вы должны использовать его абстрактные классы в этом случае, для издевательства над методом GetUser() используйте класс MembershipProvider, его можно имитировать, просто передайте его вашему контроллеру, и это сделано.

Удачи, если у вас возникнут проблемы, просто дайте мне сейчас, я опубликую несколько примеров кода.

person Sergey Kravchenko    schedule 25.06.2010