AngularJS - c'è una buona ragione per cui il test unitario del controller angularJS dovrebbe essere ancora scritto insieme ai test e2e?

0

Dato il tutorial ufficiale di angularJS,

link

È evidente che verifica solo gli stati del controller (ad esempio il suo modello) quando si verificano gli eventi (ad esempio la risposta del server http). Tuttavia, questo tipo di test non può testare se l'HTML chiama correttamente i metodi appropriati del controller.

Al contrario, se il test end-to-end (cioè utilizzando il goniometro) può persino testare l'HTML correttamente chiamando i metodi appropriati, oltre a testare quali test dell'unità di test del controller angularJS.

C'è ancora una buona ragione per cui il test dell'unità del controller angularJS dovrebbe ancora essere scritto?

    
posta Xegara 02.05.2017 - 19:17
fonte

1 risposta

1

Questo non è specifico per l'angolare, ma un concetto generale noto come piramide di prova

Hai ragione che i test di e2e sono migliori perché funzionano più come un vero utente. È facile fare test di unità che "dimostrino" che il codice funzioni perfettamente, ma in realtà potrebbe essere configurato in modo errato rendendolo completamente rotto.

Come possiamo vedere nei test i test piramidici di e2e hanno un costo maggiore. Inoltre tendono ad essere più fragili perché usano un vero database che è stato condiviso. Pensa a un'applicazione di tipo e-commerce, uno dei test potrebbe aver acquistato tutto l'inventario, rendendo inutili gli altri test.

È anche difficile testare il fallimento di uno scenario in un test di e2e. Questo è molto più facile da testare in altri livelli piramidali.

Un problema con e2e è che un test non riuscito può coprire più di una causa principale, rendendo imprevedibile quanto tempo ci vuole per riparare un sistema danneggiato.

Tutto sommato un buon mix è la migliore strategia.

    
risposta data 02.05.2017 - 21:03
fonte

Leggi altre domande sui tag