Come gestisco meglio lo stato nei test front-end

3

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?

    
posta michaelsnowden 13.10.2015 - 02:05
fonte

1 risposta

3

Esistono numerose strategie possibili che puoi utilizzare.

  1. Ripristina la pagina in modo che il test inizi sempre nello stesso stato della pagina.
  2. Riduci il numero di transizioni di stato effettuate sulla pagina.
  3. Spingi tutta la logica applicativa che puoi eventualmente estrarre dalla pagina da qualche altra parte.
risposta data 13.10.2015 - 02:18
fonte

Leggi altre domande sui tag