Quali sono i contro per escludere del codice dall'analisi della copertura?

0

Recentemente sono diventato molto interessato a migliorare la copertura dei test del mio progetto. A questo punto, ho un sottomodulo abbastanza accuratamente testato, ma la copertura è ancora piuttosto bassa perché lo strumento sta rilevando tutte le mie viste come completamente scoperte. (Sto usando MVP, quindi queste visualizzazioni sono davvero "stupide", non hanno bisogno di essere testate secondo me.) Prima di andare a dare uno schiaffo agli attributi [ExcludeCodeCoverage] sulle mie visualizzazioni, mi piacerebbe sapere se sono tutti negativi di questo.

Per essere chiari sulle cose, sto solo cercando di farlo a livello di classe. Ad esempio, ho un metodo che colpisce il file system. Ovviamente, non posso testarlo (facilmente), ma considero il fatto che non riesco a provare un odore. Dal momento che è un odore, la copertura ridotta di questa classe è un avviso per me che c'è qualcosa che ha bisogno di refactoring. Non escluderò nulla "solo per ottenere i numeri". Sono solo interessato potenziali insidie di escludere il livello dell'interfaccia utente e semplici fabbriche di classe come questa.

public class SourceControlProviderFactory : ISourceControlProviderFactory
{
    public ISourceControlProvider CreateProvider(VBProject project)
    {
        return new GitProvider(project);
    }

    public ISourceControlProvider CreateProvider(VBProject project, IRepository repository)
    {
        return new GitProvider(project, repository);
    }
}

Questa domanda è strettamente correlata , ma ho già preso di mira il codice che vorrei escludere. Sono più interessato a "Ci sono buone ragioni per non farlo?" al contrario di "Cosa dovrei escludere?".

    
posta RubberDuck 13.06.2015 - 17:02
fonte

1 risposta

3

What are the cons to excluding some code from coverage analysis?

  1. Non riesci a vedere quel codice nel tuo rapporto sulla copertura del codice. Quindi se la copertura cambia, non lo saprai (da questo strumento), quindi non lo aggiusterai.

  2. Alcuni dei tuoi ... programmatori meno disciplinati (che potrebbero essere tu in futuro) saranno più inclini a escludere il codice se vedranno altri posti che sono esclusi.

Ma l'attributo è lì per un motivo. Un po 'di codice, non ti interessa se ha una copertura di test perché è ovviamente corretto, o perché ingombra il tuo rapporto, rendendo più difficile vedere le cose che in realtà mancano di copertura. Quindi usalo con giudizio e assicurati che anche gli altri facciano altrettanto.

    
risposta data 13.06.2015 - 17:27
fonte

Leggi altre domande sui tag