Ci piacerebbe sapere che cosa vedi come best practice e cosa ha funzionato per i tuoi progetti
La mia organizzazione è nelle fasi iniziali della creazione di una suite di test Selenium e ho avuto alcune discussioni iniziali su come garantire che i nostri test siano efficaci.
In uno dei primi test, abbiamo modificato il markup sotto test per facilitare il test:
Il markup originale era qualcosa del tipo:
<div><a href="someLink"><i class="fa fa-someicon"></i>Some Text</a></div>
E l'autore del test ha aggiunto un ID al tag di ancoraggio:
<div><a id="SomeId" href="someLink"><i class="fa fa-someicon"></i>Some Text</a></div>
Sono emersi alcuni punti di vista:
-
Aggiungere qualcosa al markup esclusivamente allo scopo di facilitare i test è una brutta cosa.
a.) Ingombra il markup, cosa che danneggia gli sviluppatori front-end (cioè dove viene utilizzato anche questo ID?).
b.) Aumenta il carico utile inviato ai client.
-
Aggiungere un id a un elemento per facilitare il test va bene.
a.) Permette selettori più robusti (attraversando il DOM / usando un XPath può essere molto più fragile e difficile da leggere).
b.) Partendo dal presupposto che si utilizzano ID univoci, non c'è nessun aspetto negativo rilevante nell'aggiunta di identificatori agli elementi di una pagina.
-
Aggiungere un altro attributo (ad es. data-testing-id) è preferibile all'aggiunta di un id.
a.) Mentre ingombrare il markup e viene anche inviato nella risposta ai client, lo scopo dell'attributo è molto chiaro.
b.) Simile al punto 2, puoi scrivere selettori più robusti.