¿Cómo decorar una clase como no comprobable para la cobertura de código?
-
05-07-2019 - |
Pregunta
Antecedentes: Visual Studio 2008, C #, .Net 3.5.
Tengo varias clases de utilidad que simplemente no se pueden probar por unidad. Esto se debe principalmente a que interactúan con los recursos (por ejemplo, bases de datos, archivos, etc.).
¿Hay alguna forma de decorar estas clases para que el motor de Cobertura del Código de Visual Studio las ignore, de modo que no disminuya el porcentaje de cobertura del código?
Solución
Hay una respuesta en este artículo sobre cómo usar [System. Diagnostics.DebuggerHidden] o [ System.Diagnostics.DebuggerNonUserCode] Atributos para excluir métodos de la cobertura del código.
Actualización según el comentario de David:
A partir de .NET 4.0, hay un atributo dedicado para esto: [ExcludeFromCodeCoverage]
Otros consejos
Cuando actualice su proyecto a .NET 4, obtendrá el ExcludeFromCodeCoverageAttribute Class .
Una de las razones por las que desea escribir pruebas unitarias es hacer que su código esté débilmente acoplado. Puede leer este artículo si está interesado en aprender a escribir código débilmente acoplado (en caso de que no sepa cómo hacerlo).
Decir que puedes intentar usar herramientas como TypeMock que puede ayudarte a burlarte de tus objetos incluso si no los escriba usando Principio de inyección de dependencia .
TypeMock fue el primer Mock Framework que usé. Cambio a Rhino Mocks porque con TypeMock no tenía que ser lo suficientemente disciplinado para escribir código acoplado libremente.