В одном из моих модульных тестов я хочу проверить, возвращают ли все общедоступные методы тип ActionResult. Вот мой метод испытания:RuntimeType вместо Type in C# Unit Test
[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
спасибо. Теперь он работает так, как я этого хотел. –