Модульное тестирование пользовательского класса атрибутов - PullRequest
7 голосов
/ 12 июля 2011

У меня есть custom attribute, который просто используется для пометки члена (нет constructor, нет properties):

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

Как бы я это проверил? И, чтобы уточнить ... я знаю "что", но не "как"

Я предполагаю, что есть способ провести его модульное тестирование, чтобы убедиться в наличии правильного AttributeUsage? Так как я мог это сделать? Каждый раз, когда я создаю фиктивный класс и пытаюсь добавить атрибут к неправильной вещи, он не позволяет мне компилироваться, так как я могу создать плохой фиктивный класс для тестирования?

1 Ответ

11 голосов
/ 12 июля 2011

Вы бы не создали фиктивный класс для проверки этого.Вместо этого вы просто протестируете сам класс атрибута, чтобы увидеть, имеет ли он правильные 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...