Question

Background: Visual Studio 2008, C#, .Net 3.5.

I have a number of utility classes that are simply not unit-testable. This is mainly because they interact with resources (e.g. databases, files etc).

Is there a way I can decorate these classes so that the Visual Studio Code Coverage engine will ignore them, so not decreasing the code coverage percentage?

Was it helpful?

Solution

There is an answer in this article about how to use [System.Diagnostics.DebuggerHidden] or [System.Diagnostics.DebuggerNonUserCode] Attributes to exclude methods from code coverage.

Update as per David's comment:

As of .NET 4.0 there is a dedicated attribute for this: [ExcludeFromCodeCoverage]

OTHER TIPS

When you upgrade your project to .NET 4, you'll get the ExcludeFromCodeCoverageAttribute Class.

One of the reason you want to write unit-tests is to make your code loosely coupled. You can read this article if you're interested in learning how to write loosely coupled code (in case you don't know how).

Saying that you can try to use tools like TypeMock that can help you mock your objects even if you don't write them using Dependency Injection principle.

TypeMock was the first Mock Framework I used. I switch to Rhino Mocks because with TypeMock I didn't have to be discipline enough to write loosely coupled code.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top