Scrivo molti test front-end e i test falliscono molto spesso. Per essere onesti, per me sono difficili da scrivere. Mi sento come se dovessi fare un sacco di lavoro tenendo traccia dello stato della pagina. Sembra che ogni funzione che scrivo sia l'opposto di una funzione pura. Ci sono così tanti effetti collaterali. Ottengo sempre eccezioni di riferimento e eccezioni puntatore nullo.
Ad esempio, dico comment.clickLike()
, ma non sono più nella pagina che contiene quel commento (riferimento stantio).
O dirò findElement(".comment:eq(0)").clickLike()
, e otterrò un NPE perché non sono più sulla pagina, quindi finisco per non trovare il commento.
Ci sono anche altri fattori. findElement(".comment:eq(0)").clickLike()
non può riuscire perché uno degli sviluppatori front-end ha deciso di modificare la classe dei commenti in post-comment
o qualcosa del genere.
Quali sono alcune buone pratiche per rendere più sicuri i test che scrivo? C'è un modo per progettare interazioni di oggetti di pagina che li faccia avere meno effetti collaterali? C'è un modo per trovare oggetti sulla pagina anche se i loro selettori cambiano nel tempo?