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?".