Devo eseguire il test dell'unità

8

La maggior parte della logica per il mio webservice riguarda la comunicazione con i servizi web del nostro fornitore (verifica disponibilità, ordini, ecc.). Non hanno un ambiente di test e la maggior parte delle chiamate non può essere eseguita arbitrariamente (ad esempio un cessate sarebbe esegui una volta e fermerebbe effettivamente un servizio).

È possibile eseguire unit test in questo ambiente? Potrei simulare le risposte tipiche, ma sono preoccupato che le risposte dei fornitori hardcoding minerebbero il punto dei test unitari.

    
posta Tom Squires 09.09.2011 - 10:52
fonte

3 risposte

30

No, non lo farà. Il punto dei test unitari è precisamente quello di testare il tuo codice in isolamento , indipendentemente dal mondo esterno.

Test dell'intero sistema che interagiscono con parti esterne come servizi web, ecc. è integrazione / test di sistema . Ciò è necessario anche nella maggior parte dei progetti del mondo reale, ma è un livello diverso rispetto ai test unitari. In realtà sembra che nella tua situazione, poiché hai difficoltà nel test di integrazione, hai bisogno di test unitari ancora più del solito .

Come obiettivo a lungo termine, potresti considerare di educare e / o infastidire i fornitori in questione per creare un ambiente di test per loro stessi e i loro clienti. Potrebbe tuttavia essere necessario invocare il supporto della tua gestione affinché ciò avvenga, quindi preparati con dati e dati concreti per convincerli del valore commerciale di un ambiente di test.

    
risposta data 09.09.2011 - 10:56
fonte
1

I test unitari ti forniranno anche una specifica non ambigua e eseguibile del comportamento che ti aspetti dai tuoi fornitori. Questo probabilmente renderà molto più facile comunicare con loro.

Se c'è qualche problema nell'interazione tra il tuo e il loro, puoi fornire loro i tuoi test unitari per indicare chiaramente quale comportamento il tuo codice si aspetta. Se il loro codice non funziona allo stesso modo dei tuoi test unitari, le differenze sono solitamente facili da individuare.

    
risposta data 09.09.2011 - 13:57
fonte
0

ROI

Questa è davvero una domanda di ritorno sull'investimento. Ritenete che investire in test unitari valga quanto vi restituiremo. Vale a dire, il tuo codice è stato testato in isolation . Oltre a tutti gli altri vantaggi dei test unitari.

È possibile contrastare ciò con un approccio di test di accettazione automatico in cui si otterrebbe un conto di prova dal proprio fornitore, verificando effettivamente il sistema integrato con i test. Il costo di fare ATDD vale quello che torni. Vale a dire, test del sistema nel suo complesso.

Sta a te fare l'analisi e capire se dovresti fare test unitari, test di accettazione automatizzati, entrambi, né, né qualcos'altro.

    
risposta data 09.09.2011 - 17:51
fonte

Leggi altre domande sui tag