2009-10-21 34 views
16

Antecedentes: Visual Studio 2008, C#, .Net 3.5.¿Cómo decorar una clase como no comprobable para Cobertura de código?

Tengo una serie de clases de utilidad que simplemente no son verificables por unidad. Esto se debe principalmente a que interactúan con los recursos (por ejemplo, bases de datos, archivos, etc.).

¿Hay alguna manera de decorar estas clases para que el motor de Cobertura de códigos de Visual Studio las ignore, para no disminuir el porcentaje de cobertura del código?

+0

Dupe: http://stackoverflow.com/questions/1289429/use-attribute-to-omit-code-from-coverage-analysis-in-visual-studio – tvanfosson

Respuesta

14

Hay una respuesta en this article sobre cómo usar [System.Diagnostics.DebuggerHidden] o [System.Diagnostics.DebuggerNonUserCode] Atributos para excluir métodos de la cobertura del código.

actualización de acuerdo con el comentario de David:

A partir de .NET 4.0 no es un atributo específico para esto: [ExcludeFromCodeCoverage]

+1

Un punto de precaución (del artículo anterior): "DebuggerHidden evitará que ingrese al método o establezca puntos de interrupción en ese código y DebuggerNonUserCode ocultará el código como tiempo de depuración (sic) y lo pisará automáticamente". – Dunc

+3

Nota importante: desde .NET 4.0 hay un atributo dedicado para esto: '[ExcludeFromCodeCoverage]' – David

+0

Gracias @David se ha agregado su nota a la respuesta. –

1

Uno de los motivos por los que desea escribir pruebas unitarias es hacer que su código esté ligeramente acoplado. Puede leer this article si está interesado en aprender a escribir código ligeramente acoplado (en caso de que no sepa cómo hacerlo).

Diciendo que puede intentar utilizar herramientas como TypeMock que pueden ayudarle a burlarse de sus objetos incluso si no los escribe utilizando Dependency Injection principle.

TypeMock fue el primer Framework simulado que utilicé. Cambio a Rhino Mocks porque con TypeMock no tuve que ser lo suficientemente disciplinado para escribir un código débilmente acoplado.

+2

Escribimos código muy bueno, débilmente acoplado; pero en algún momento, ¡algo tiene que acceder realmente a un recurso! –

+0

Crea envoltorios para estos recursos y usa envoltorios en su código de producción en lugar de recursos. Verifique el enlace en mi respuesta. – Vadim

Cuestiones relacionadas