C# 对自定义属性类进行单元测试

C# 对自定义属性类进行单元测试,c#,unit-testing,attributes,mocking,C#,Unit Testing,Attributes,Mocking,我有一个自定义属性,仅用于标记成员(无构造函数,无属性): 我如何进行单元测试?而且,为了澄清。。。我知道“什么”,但不知道“怎么做” 我假设有一种方法可以对它进行单元测试,以确保正确的AttributeUsage?那我该怎么做呢?每次我创建一个mock类并尝试将属性添加到错误的对象时,它都不允许我编译,那么我如何才能创建一个坏的mock类来测试呢?您不会创建一个mock类来测试它。相反,您只需测试属性类本身,看看它是否具有正确的AttributeUsageAttribute属性属性。哇,真是一

我有一个
自定义属性
,仅用于标记成员(无
构造函数
,无
属性
):

我如何进行单元测试?而且,为了澄清。。。我知道“什么”,但不知道“怎么做”


我假设有一种方法可以对它进行单元测试,以确保正确的
AttributeUsage
?那我该怎么做呢?每次我创建一个mock类并尝试将属性添加到错误的对象时,它都不允许我编译,那么我如何才能创建一个坏的mock类来测试呢?

您不会创建一个mock类来测试它。相反,您只需测试属性类本身,看看它是否具有正确的
AttributeUsageAttribute
属性属性。哇,真是一口

[TestMethod]
public void是\u属性\u多个\u False()
{
var attributes=(IList)typeof(MyCustomAttribute).GetCustomAttributes(typeof(AttributeUsageAttribute),false;
arest.AreEqual(1,attributes.Count);
var属性=属性[0];
Assert.IsFalse(attribute.AllowMultiple);
}
//等等。

@Kornelije:我给他定了个头衔。如果你点击他的名字,他一定留下了最后一个问题的标题是的,很抱歉。Firefox在我的参赛表格中已经有了我同样的问题和标题。我忘了更改标题。@michael,您需要100%的代码覆盖率吗?:-)@波利什丘克:我们不是都应该追求100%的代码覆盖率吗?
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public sealed class MyCustomAttribute : Attribute { }
[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.