Test dell'unità con pacchetti o assiemi esterni

2

Sto testando una classe che ha due dipendenze, entrambe sono pacchetti esterni (sto usando C #, quindi questi sono pacchetti NuGet, AutoMapper e CompareNETObjects).

(NOTA: Entrambe sono solo delle utilità, relative alla conversione di un oggetto da un tipo all'altro e al confronto di oggetti. Nessuna delle chiamate esterne)

Dovrei prendere in giro questi pacchetti esterni o è accettabile supporre che siano blocchi di base solidi che non necessitano di test, in modo simile alle librerie .NET?

O forse dovrei decidere se testare ciascun pacchetto caso per caso? Di 'non testare i pacchetti open source più diffusi, dato che possiamo presumere che siano ben testati ma testano quelli meno popolari che non hanno tanti utenti o contributori.

So che le risposte a questa domanda sono probabilmente opinioni, ma mi piacerebbe scoprire cosa pensano gli esperti tester di unità.

    
posta Simon Tewsi 29.06.2016 - 04:32
fonte

1 risposta

4

Schiva gli elementi esterni per le tue unittests, dove applicabile

Dipende tutto da cosa fa la libreria esterna per te. Ad esempio, se si dispone di una classe che dipende da una libreria esterna che funziona con il file system, è probabile che si voglia deriderla e non eseguire alcuna reale operazione sul filesystem nella propria unità. Se disponi di una libreria esterna che esegue il mapping da un oggetto a un altro, probabilmente starai bene e vorrai utilizzare direttamente quella libreria esterna nelle tue unittests.

Ricorda che le unittests riguardano una unità di codice coesivo, non una singola classe .

hai ampi test di integrazione che coprono la tua libreria esterna

Se hai librerie esterne, assicurati che i tuoi test di integrazione coprano alcuni casi per loro. Vuoi testare la tua integrazione con quelle librerie esterne come parte dei tuoi test.

Contribuisci al pacchetto se manca di test

Se si riscontra che la libreria esterna in uso non dispone di test, non scrivere tali test nell'applicazione. Invece, vedi se puoi scrivere il codice e inviarlo al manutentore e ottenerlo nella versione ufficiale in modo che anche altri possano trarne vantaggio.

    
risposta data 29.06.2016 - 11:34
fonte

Leggi altre domande sui tag