如何NUnit测试方法的属性是否存在

时间:2010-01-05 16:29:22

标签: c# attributes nunit

   public interface IMyServer
    {
        [OperationContract]
        [DynamicResponseType]
        [WebGet(UriTemplate = "info")]
        string ServerInfo();
    }

如何编写NUnit测试以证明C#接口方法上设置了[DynamicResponseType]属性?

1 个答案:

答案 0 :(得分:18)

类似的东西:

Assert.IsTrue(Attribute.IsDefined(
            typeof(IMyServer).GetMethod("ServerInfo"),
            typeof(DynamicResponseTypeAttribute)));

您还可以执行涉及泛型和委托或表达式(而不是字符串“ServerInfo”)的操作,但我不确定它是否值得。

[WebGet]

WebGetAttribute attrib = (WebGetAttribute)Attribute.GetCustomAttribute(
    typeof(IMyServer).GetMethod("ServerInfo"),
    typeof(WebGetAttribute));
Assert.IsNotNull(attrib);
Assert.AreEqual("info", attrib.UriTemplate);