当一个期望的类型被包装在一个System.RuntimeType?
作为一个更大的单元测试的一部分,为了验证一个操作是否分配了正确的参数和操作过滤器,我针对一个已填充的MethodInfo实例进行断言。当我反对action.return参数“它失败了,因为它说的类型是系统运行时类型. 虽然我知道这是一个围绕预期类型的包装器,但我似乎找不到一种方法来断言包装的实例是预期类型的—到目前为止,我提出的最好的方法是针对名称或全名进行断言,但这太可怕了,因为它只是使用“魔法字符串”。
有人能帮忙吗?由于我的谷歌搜索没有发现任何有用的东西,我猜这是一个非常简单的解决方案,我只是没有看到它。
[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");
}
视图结果应为预期类型
<系统.Web.Mvc.ViewResult>
但当时是:
<