Domanda

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

Ho un numero di classi di utilità che semplicemente non sono testabili dall'unità. Questo principalmente perché interagiscono con le risorse (ad es. Database, file ecc.).

Esiste un modo per decorare queste classi in modo che il motore di copertura del codice di Visual Studio le ignori, in modo da non ridurre la percentuale di copertura del codice?

È stato utile?

Soluzione

C'è una risposta in questo articolo su come utilizzare [Sistema. Diagnostics.DebuggerHidden] o [ System.Diagnostics.DebuggerNonUserCode] Attributi per escludere metodi dalla copertura del codice.

Aggiornamento come da commento di David:

A partire da .NET 4.0 esiste un attributo dedicato per questo: [ExcludeFromCodeCoverage]

Altri suggerimenti

Quando aggiorni il tuo progetto a .NET 4, otterrai ExcludeFromCodeCoverageAttribute Class .

Uno dei motivi per cui vuoi scrivere unit test è rendere il tuo codice liberamente accoppiato. Puoi leggere questo articolo se sei interessato a imparare a scrivere codice liberamente accoppiato (nel caso in cui non sai come).

Dire che puoi provare a utilizzare strumenti come TypeMock che possono aiutarti a deridere i tuoi oggetti anche se non scriverli utilizzando Principio dell'iniezione di dipendenza .

TypeMock è stato il primo Mock Framework che ho usato. Passo a Rhino Mocks perché con TypeMock non dovevo essere abbastanza disciplinato per scrivere un codice liberamente accoppiato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top