В одном из моих модульных тестов я хочу проверить, все ли публичные методы возвращают тип ActionResult. Вот мой метод испытаний:
[TestMethod]
public void Public_Methods_Should_Only_Return_ActionResults()
{
MethodInfo[] methodInfos = typeof(MyController).GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach (MethodInfo methodInfo in methodInfos)
{
Assert.IsInstanceOfType(methodInfo.ReturnType, typeof(System.Web.Mvc.ActionResult));
}
}
Этот тест взрывается при первом методе из MyController:
[Authorize]
public ActionResult MyList()
{
return View();
}
Со следующей ошибкой:
Assert.IsInstanceOfType failed. Expected type:<System.Web.Mvc.ActionResult>. Actual type:<System.RuntimeType>.
Когда я устанавливаю точку останова для этого Assert и проверяю методInfo.ReturnType, он имеет тип Type и это ActionResult.
Может кто-нибудь объяснить мне, почему тест взорвался и что нужно сделать, чтобы он заработал?
Спасибо заранее,
MR