首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试一个类是否有一个属性?

测试一个类是否有一个属性?
EN

Stack Overflow用户
提问于 2009-08-04 07:44:13
回答 4查看 77.1K关注 0票数 127

我正在尝试进行一个Test-First开发,并且尝试验证我的类是否标记了一个属性:

代码语言:javascript
复制
[SubControllerActionToViewDataAttribute]
public class ScheduleController : Controller

如何对分配了该属性的类进行单元测试?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-08-04 07:47:55

检查一下

代码语言:javascript
复制
Attribute.GetCustomAttribute(typeof(ScheduleController),
    typeof(SubControllerActionToViewDataAttribute))

isn不为null (Assert.IsNotNull或类似)

(我使用它而不是IsDefined的原因是,大多数时候我也想验证属性的一些属性……)

票数 146
EN

Stack Overflow用户

发布于 2009-08-04 07:47:23

与您通常检查类上的属性相同。

下面是一些示例代码。

代码语言:javascript
复制
typeof(ScheduleController)
.IsDefined(typeof(SubControllerActionToViewDataAttribute), false);

我认为在很多情况下,在单元测试中测试属性的存在是错误的。因为我还没有使用过MVC contrib的子控制器功能,所以我不能评论它在这种情况下是否合适。

票数 91
EN

Stack Overflow用户

发布于 2016-03-13 03:19:50

也可以对此使用泛型:

代码语言:javascript
复制
var type = typeof(SomeType);
var attribute = type.GetCustomAttribute<SomeAttribute>();

这样,您不需要另一个typeof(...),这可以使代码更整洁。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1226161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档