Как вы можете утверждать, что ожидаемый тип возвращается, когда он упакован в System.RuntimeType?
В рамках более крупного модульного теста для проверки того, что действию назначены правильные параметры и фильтры действий, я утверждаю против заполненного экземпляра MethodInfo. Когда я утверждаю против «action.ReturnParameter», он терпит неудачу, так как говорит, что тип - System.RunTimeType. Хотя я понимаю, что это обертка вокруг ожидаемого типа, я просто не могу найти способ утверждать, что обернутый экземпляр имеет ожидаемый тип - лучший метод, который я до сих пор придумал, это утверждать против имени или полного имени, но это ужасно, поскольку он просто использует «волшебные строки».
Кто-нибудь может помочь? Поскольку мои поиски в Google не дали ничего полезного, я полагаю, что это действительно простое решение, просто я его не вижу.
Код выглядит следующим образом:
[TestMethod]
public void CheckActionFilterSet()
{
MethodInfo action = new CustomerController((new MockHttpContext()).Object)
.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance)
.Where(mi => mi.Name.Equals("Search")).First();
Assert.That(action.ReturnParameter.ParameterType, Is.InstanceOf(typeof(ViewResult)), "View Result should be of expected type");
}
Сообщение об исключении:
Результат просмотра должен быть ожидаемого типа
Ожидается: экземпляр
Но было: