对自定义属性类进行单元测试
本文关键字:单元测试 自定义属性 | 更新日期: 2023-09-27 18:01:48
我有一个custom attribute
,只是用来标记成员(没有constructor
,没有properties
):
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public sealed class MyCustomAttribute : Attribute { }
我该如何进行单元测试呢?澄清一下……我知道"是什么",但不知道"怎么做"
我假设有一种方法来单元测试它,以确保适当的AttributeUsage
到位?我该怎么做呢?每次我创建一个模拟类并尝试将属性添加到错误的东西时,它都不允许我编译,那么我如何创建一个糟糕的模拟类来进行测试呢?
您不需要创建模拟类来测试这一点。相反,您只需测试属性类本身,看看它是否具有正确的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.