Как протестировать пользовательский ActionFilter в ASP.Net MVC

Итак, я создаю пользовательский ActionFilter, основанный в основном на этом проекте http://www.codeproject.com/KB/aspnet/aspnet_mvc_restapi.aspx.

Мне нужен пользовательский фильтр действий, который использует заголовки http accept для возврата либо JSON, либо Xml. Типичное действие контроллера будет выглядеть так:

[AcceptVerbs(HttpVerbs.Get)]
[AcceptTypesAttribute(HttpContentTypes.Json, HttpContentTypes.Xml)]
public ActionResult Index()
{
    var articles = Service.GetRecentArticles();

    return View(articles);
}

Пользовательский фильтр переопределяет OnActionExecuted и будет сериализовать объект (в данном примере статьи) как JSON или Xml.

Мой вопрос: как мне это протестировать?

  1. Какие тесты мне написать? Я новичок в TDD и не уверен на 100%, что мне следует тестировать, а что нет. Я придумал AcceptsTypeFilterJson_RequestHeaderAcceptsJson_ReturnsJson(), AcceptsTypeFilterXml_RequestHeaderAcceptsXml_ReturnsXml() и AcceptsTypeFilter_AcceptsHeaderMismatch_ReturnsError406().
  2. Как протестировать ActionFilter в MVC, который проверяет заголовки Http Accept?

Спасибо.

23
задан John 14 December 2011 в 16:41
поделиться