2009-12-08 4 views
0

У меня есть фильтр действий, который я получил от ссылки ниже http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/Как написать тестовый пример для фильтров действия mvc?

есть нечто, называемое «RequiresAuthenticationAttribute» для этого мне нужно, чтобы написать тестовый пример. как я могу это сделать? сформируйте некоторые из блогов, которые я читал, что нам нужно издеваться над httcontext. Как я могу издеваться над этим? что мне нужно делать? есть ли ссылка для этого?

ответ

2

Не используйте атрибут [RequiresAuthentication] из блога Роба. Он предназначен для очень старой предварительной версии MVC. Вместо этого используйте атрибут in-box [Authorize].

Поскольку атрибут [Авторизовать] написан командой MVC, вам не нужно тестировать его логику. Однако, если вы хотите, вы можете проверить, что он применяется к вашим контроллерам или действиям. Просто введите интересующий вас тип или метод, а затем вызовите его метод GetCustomAttributes(), чтобы получить экземпляры AuthorizeAttribute. Вы можете проверить эти экземпляры на ожидаемые значения.

Если вы хотите, вы можете посмотреть the source code of AuthorizeAttribute для получения информации о создании собственного фильтра. Кроме того, вы можете посмотреть the official unit test of this type, поэтому, если вы в конце концов напишите фильтр, вы можете использовать аналогичный метод для написания модульных тестов своего типа.

+0

Спасибо Levi, в модульной тестовой ссылке, я видел, что они используют «Mock mockHttpContext = new Mock ();" откуда я могу получить эту DLL? это правильный способ? like RequiresAuthentication, у меня есть свои собственные фильтры. Чтобы получить покрытие кода, мне также нужно написать тестовый файл для фильтров. – nimi

+1

Команда MVC использует фальсификацию MOQ. Дополнительную информацию можно получить на странице http://code.google.com/p/moq/. Но вы можете использовать все, с чем вам удобно. – Levi

Смежные вопросы