2011-07-12 22 views
6

Tengo un custom attribute que solo se usa para marcar un miembro (sin constructor, sin properties):Unidad de Pruebas un atributo personalizado clase

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

¿cómo iba a unidad de prueba de esto? Y, para aclarar ... sé el 'qué', pero no el 'cómo'

Supongo que hay una manera de probarlo unitariamente para asegurarse de que el correcto AttributeUsage esté en su lugar? Entonces, ¿cómo podría hacer esto? Cada vez que creo una clase simulada y trato de agregar el atributo incorrectamente, no me permite compilar, entonces, ¿cómo puedo crear una clase falsa de prueba para probar?

+0

@Kornelije: Me fijo su título por él. Si hace clic en su nombre, debe haber dejado el título de su última pregunta allí. :) –

+0

Sí, lo siento. Firefox ya tenía mi misma pregunta y título en el formulario de inscripción. Olvidé cambiar el título. – michael

+1

@michael, ¿Necesita una cobertura de código del 100%? :-) –

Respuesta

10

No creará una clase falsa para probar esto. En cambio, simplemente probaría la clase de atributo en sí para ver si tiene las propiedades de atributo AttributeUsageAttribute correctas. menos mal, lo que es un bocado

[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. 
Cuestiones relacionadas