Answers:
检查一下
Attribute.GetCustomAttribute(typeof(ScheduleController),
typeof(SubControllerActionToViewDataAttribute))
不为null(Assert.IsNotNull
或类似值)
(之所以使用它,IsDefined
是因为大多数时候我也想验证属性的某些属性...。)
通常,您需要检查类的属性。
这是一些示例代码。
typeof(ScheduleController)
.IsDefined(typeof(SubControllerActionToViewDataAttribute), false);
我认为在许多情况下,在单元测试中测试属性的存在是错误的。由于我没有使用过MVC contrib的子控制器功能,因此我无法评论在这种情况下是否合适。
也可以对此使用泛型:
var type = typeof(SomeType);
var attribute = type.GetCustomAttribute<SomeAttribute>();
这样,您就不需要另一个typeof(...)
,它可以使代码更整洁。
using
)您会遇到什么错误?
GetCustomAttribute<SomeAttribute>
方法适用于.NET 4.5,并且我的IDE设置为3.5,因此现在一切都清楚了
我知道这个线程确实很老,但是如果有人偶然发现它,您可能会发现fluentassertions项目对于执行这种声明非常方便。
typeof(MyPresentationModel).Should().BeDecoratedWith<SomeAttribute>();