Можно ли проверить, что действие недоступно через URL? - PullRequest
0 голосов
/ 04 апреля 2011

Я использую MvcContrib для написания модульных тестов для нашей таблицы маршрутизации в проекте MVC3.Пока все хорошо.

Я хотел бы убедиться, что действие доступно только «внутри» приложения и его нельзя перенаправить на URL-адрес.Реализация использует атрибут ChildActionOnly для предотвращения доступа к нему.Я могу проверить это вручную, и это работает, но можно ли написать модульный тест, который утверждает, что этот URL недоступен?

Дан

1 Ответ

2 голосов
/ 04 апреля 2011

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

[TestMethod]
public void Index_action_on_home_controller_is_a_child_action_only() 
{
    Expression<Func<HomeController, ActionResult>> ex = c => c.Index();
    var mce = (MethodCallExpression)ex.Body;
    var atts = mce.Method.GetCustomAttributes(typeof(ChildActionOnlyAttribute), false);
    Assert.IsTrue(atts.Length > 0);
}
...