Il problema:aspettano() senza aspettative attuali
Recentemente, mentre la revisione la nostra base di codice di test esistente, ho notato una specie pericolosa di errore di battitura/errore quando expect()
è stato utilizzato senza la parte "matching":
expect(page.filters.fromDateLabel.getText(), "After");
sono abbastanza sicuro toEqual()
stata pensata per essere usata qui:
expect(page.filters.fromDateLabel.getText()).toEqual("After");
Th Il problema con questo è che jasmine
non fallirebbe l'aspettativa in questo caso (beh, ovviamente perché nulla era effettivamente previsto). E questo ci porta a un problema più serio - nulla è stato effettivamente testato in un caso di test - stava passando senza aspettative. Stavamo diventando un falso senso di ciò che è stato testato.
la domanda:
voglio prendere questi errori il più velocemente possibile. Come pensi che dovrei gestire il problema?
Pensieri:
- in qualche modo riescono un banco di prova se non ci fosse aspettative fatte in esso (non so se
jasmine
ha nulla di simile built-in) - "patch" la questione
expect()
e un avvertimento/genera un errore se nulla è stato chiamato da parte "aspettarsi" - analisi statica del codice uso - definire una regola personalizzata
eslint
La regola pelucchi sarebbe la mia preferenza come è il meno invasivo – Phil
@Phil Sono d'accordo, questo è quello che sto pensando di provare prima, poiché sembra l'opzione più semplice - + abbiamo già definito una serie di regole eslint personalizzate. In generale, mi piace anche l'opzione n. 1 - probabilmente ha senso indicare allo sviluppatore e2e che non ha effettivamente controllato nulla in un test..grazie per il punto! – alecxe
@Phil e sì, in un mondo ideale, cose come questa non dovrebbero accadere dal momento che uno sviluppatore che scrive un test deve vedere il test fallito e assicurarsi che controlli ciò che doveva essere controllato. Ma gli errori di battitura e gli errori capitano a tutti: voglio solo che queste cose vengano catturate "fresche" :) – alecxe