【问题标题】:Unit Testing a custom attribute class单元测试自定义属性类
【发布时间】:2011-07-12 18:01:45
【问题描述】:

我有一个custom attribute,它只是用来标记一个成员(没有constructor,没有properties):

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public sealed class MyCustomAttribute : Attribute { }

我将如何对此进行单元测试?而且,澄清一下……我知道“什么”,但不知道“如何”

我认为有办法对其进行单元测试以确保正确的AttributeUsage 到位?那么我该怎么做呢?每次我创建一个模拟类并尝试将属性添加到错误的东西时它不会让我编译,那么我该如何创建一个糟糕的模拟类来测试呢?

【问题讨论】:

  • @Kornelije:我为他确定了他的头衔。如果你点击他的名字,他一定把他最后一个问题的标题留在了那里。 :)
  • 是的,很抱歉。 Firefox 在我的报名表中已经有我相同的问题和标题。我忘记改标题了。
  • @michael,您需要 100% 的代码覆盖率吗? :-)
  • @polishchuk:我们不都应该以 100% 的代码覆盖率为目标吗?

标签: c# unit-testing attributes mocking


【解决方案1】:

你不会创建一个模拟类来测试这个。相反,您只需测试属性类本身以查看它是否具有正确的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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2018-02-25
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多