Suite de cette discussion
J'imagine que tu as bossé avec le driver Selenium directement SpaceFox non ?
Si c'est le cas, je pense que tu as pu constater à quel point les primitives de l'API Selenium sont mal foutus, bas niveau et franchement a pain in the ass à utiliser. C'est vieux, c'est chiant. Faut dire ce qui est.
Je comprends bien l'argument de "pas besoin de DSL, je sais ce que je fais". OK. J'entends.
Simplement, le truc qu'ils occultent complètement, ce n'est pas forcément qui écrit les tests, mais qui va les lire.
Peut-être qu'un retour d'expérience est plus parlant (ou pas, m'enfin au moins ça peut servir). On s'est posé cette question au bureau il y a quelques temps, et après moult discussions (qui en essence ressemblaient à cet article hein), on a fait le choix de remplacer les tests Selenium classiques par geb.
Un peu plus d'un an plus tard, où en est-on ?
Les dévs front écrivent des tests aujourd'hui. Et mine de rien, c'était pas gagné, du tout. La syntaxe "jquery-like" (donc DSL hein, on est en plein dedans) leur simplifie énormément la vie et j'irais même jusqu'à dire leur plaît. Ils comprennent ce qu'ils lisent et ce qu'ils font. Avec Selenium "brut" tu peux être certain qu'ils auraient été rebutés.
Quand un test échoue, les gens qui ne sont pas techniques arrivent à lire les stacktraces (et c'est ce qui m'a le plus surpris) "Element machin is missing". Ca n'a pas d'application concrète, puisqu'ils ne corrigent pas les régressions. Mais vu qu'ils font parfois des tests manuels ils sont plus attentifs aux pages qui ont pété un peu avant.
On gagne énormément de temps à lire les tests. Vraiment. A les écrire aussi, mais c'est moins flagrant. Quand je lis le test de quelqu'un je comprends ce qu'il veut faire, c'est vraiment conçu dans cette optique. Et ça, y'a qu'une DSL qui peut te l'apporter. Je te garantie que c'est extrêmement agréable de lire un truc du style expect $page toBe $home after $login
ou ce genre de choses. Tu ne gagnes pas énormément de temps à l'écrire, faut s'approprier une DSL inconnue, ça prend parfois du temps, mais c'est largement rentabilisé par le temps que tu gagnes à relire les tests par la suite.
Alors mon avis peut être biaisé, tout autant que le leur j'ai envie de dire. Mais là, on essaie de s'adresser à des contributeurs qui potentiellement ne connaissent pas Django, ne connaissent pas non plus le code du site mais connaissent ses fonctionnalités.