Le mie domande riguardano principalmente la metodologia di test. Sto lavorando per un'organizzazione che pratica TDD (Test Driven Development). Stiamo utilizzando AngularJS e quindi il suo stack completo di test: Jasmine per i test unitari e il goniometro per i test e2e.Il test end 2 end è sufficiente?
Durante lo sviluppo di una funzione, il nostro processo inizia scrivendo prima un test e2e non funzionante e poi scrivendo la funzione che utilizza TDD. I test sono scritti solo per metodi pubblici (sia per controller/direttive/servizi). Il prodotto in sé non contiene alcuna logica complessa (a parte un paio di eccezioni). Recentemente abbiamo iniziato a discutere del fatto che non c'è motivo di scrivere i test unitari per i controllori, poiché stanno esponendo le funzionalità, il 100% di essi è esposto alla vista e comunque testato con i test e2e. Fondamentalmente - test di unità e test di e2e si sovrappongono. All'inizio eravamo tutti d'accordo, ma poi questa decisione ha aperto una scatola di Pandora. Dopotutto, si potrebbe dire la stessa cosa delle direttive. Quindi, perché testarli anche loro? Poi è arrivata la domanda di servizi. La maggior parte di loro (98%) effettua semplicemente una chiamata di back-end e restituisce la risposta. Quindi, perché non prendere in giro semplicemente httpBackend e testare i servizi durante il test dei controller, che vengono testati tramite e2e.
si ottiene la deriva ....
Vedo beneficio nel fare entrambe le unit test e test E2E, loro malgrado praticamente sovrapposte. Principalmente - feedback immediato e "documentazione eseguibile". Cosa stai praticando? Vedi altri vantaggi ed è "succo che vale la pena" - vale la pena scrivere test di sovrapposizione per le implementazioni più semplici solo per ottenere questi due vantaggi sopra?
Se scrivere un buon codice è un'opinione in modo da poterlo eliminare, ma è anche possibile scrivere domande sui modelli di progettazione e molti altri. Domanda di alto livello – Shvilam
Ciao ragazzi. Mentre capisco la tua preoccupazione, la mia domanda riguarda la metodologia e quelle domande non hanno mai risposte univoche. Anche quando la metodologia è ben definita, tutti la praticano in modo diverso e il punto della mia domanda era che gli altri condividessero le loro pratiche ed esperienze riguardo alle metodologie di test. Per fare questo, la discussione deve essere innescata. Una volta che è, il risultato può essere la convergenza per una risposta che stai cercando. –