Quindi sto costruendo un'applicazione con Angular e ho iniziato a fare il test dell'interfaccia utente con DalekJS ( link ). Mentre scrivo questi test ho pensato a me stesso, dovrei anche preoccuparmi di scrivere unit test che sono componenti UI / UX.
Ora i miei servizi angolari in genere non hanno nulla a che fare con il DOM o il rendering diretto della pagina in modo tale da testare l'unità e ha senso, tuttavia le direttive angolari sono componenti che rendono le cose direttamente alla pagina e scrivono le unit test sembra 1. Non è un modo efficace per testare i componenti UI / UX e 2. Si sovrapporrebbe ai test UI / UX.
Per il punto n. 1, unit test (almeno quelli che ho visto) in realtà non scrive nulla su un browser e lo rende. Per cose che richiedono DOM, generalmente prendi in giro il DOM in una variabile e usalo per testare tutto ciò che devi testare. Se si verifica un errore con un test, non è possibile caricarlo in un browser e giocarci come con i test UI / UX (che nella mia esperienza funziona con codice che è la vera applicazione che esegue il rendering e tutto) .
Per il punto 2, una delle mie direttive ha una proprietà chiamata contentVisible. Ora posso scrivere un test unitario per assicurarmi che la proprietà sia il valore corretto in determinati punti, ma in realtà non testare ciò che voglio veramente testare, perché anche se contentVisible è impostato su false, il contenuto potrebbe ancora essere sottoposto a rendering schermata che il test UI / UX avrebbe rilevato.
Vale ancora la pena di scrivere un test unitario per i componenti UI / UX in cui i test dell'interfaccia utente sarebbero in grado di raccogliere tutto ciò che il test unitario sarebbe anche fare un lavoro migliore dal momento che può testare ciò che è effettivamente reso?
eccezione L'unica eccezione in cui avrei bisogno di un test unitario è per certe richieste di ajax. Ad esempio, assicurandoti che una richiesta di ajax non sia costituita da una richiesta di ajax che non viene eseguita e le modifiche all'interfaccia utente sono cose che possono essere verificate solo con test di unità.