我有一个自定义属性,仅用于标记成员(没有构造函数,没有属性):
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field,AllowMultiple = false,Inherited = true)] public sealed class MyCustomAttribute : Attribute { }
我该如何对此进行单元测试?而且,澄清……我知道’什么’,但不知道’怎么样’
我假设有一种方法可以对它进行单元测试以确保适当的AttributeUsage到位吗?那怎么能这样呢?每次我创建一个mock类并尝试将属性添加到错误的东西时它都不会让我编译,所以如何创建一个糟糕的模拟类来测试呢?
解决方法
你不会创建一个模拟类来测试它.相反,您只需测试属性类本身以查看它是否具有正确的AttributeUsageAttribute属性属性.哇,多么满口
[TestMethod] public void Is_Attribute_Multiple_False { var attributes = (IList<AttributeUsageAttribute>)typeof(MyCustomAttribute).GetCustomAttributes(typeof(AttributeUsageAttribute),false); Assert.AreEqual(1,attributes.Count); var attribute = attributes[0]; Assert.IsFalse(attribute.AllowMultiple); } //Etc.