@rg701653, Ce que @Nicolab et moi et faisons, c’est du BDD. Le principe est simple, tu commences par faire un test représentant le comportement que tu voudrais avoir dans ton application et tu continus jusqu’à ce que celui-ci passe. Si l’on faisait du TDD, nous écrierions des tests unitaires pour chaque module mais pas un test représentant le comportement de l’utilisateur.
D’après ce que je comprend @Nicolab fait uniquement des tests d’intégration et moi j’ajoute des tests unitaires. Dans un test unitaire, un test doit être écrit pour tout les cas d’utilisation de la fonction que tu ajoutes. Le classes est isolées des autres en utilisant des stubs ou des mocks, ce qui correspond à des faux objets. Un test intégré est plus facile à faire mais est plus lent à s’exécuter étant donné que tu vas interagir avec la base de données dans la majorité des cas.
@Nicolab semble de faire que test de haut niveau. Encore une fois, c’est plus rapide à faire. Cependant, c’est très lent étant donné qu’il faut utiliser un navigateur. Ce qui, même headless, te pénalise de quelques secondes ou minutes à chaque fois. C’est pour cela que je préfère faire des tests unitaires.
Gagner quelques secondes/minutes peut paraître dérisoire mais, quand les tests doivent être exécutés souvent, à chaque fois que tu fais quelque chose. Tu veux avoir un feedback le plus rapide possible pour que ton développement soit fluide. Si tu perds 2 secondes sur un processus que tu exécutes toutes les 10 secondes c’est comme si tu mettais 20% de ta journée à la poubelle.
Si tu fais tes tests après ton code, tu perds 75% de l’intérêt de l’écriture des tests. Le BDD n’est pas uniquement une question de non-régression, c’est avant tout un outil qui va te permettre d’avoir une meilleur conception de ton application. Au début, tu ne sais pas à quoi va ressembler ton code, tu sais juste ce que tu veux. Le scénario va te dire ce que tu dois faire par la suite pour atteindre ton but. Les tests unitaires vont pouvoir cibler un comportement spécifique, ça remplace des tests que tu pourrais faire dans la console et c’est beaucoup plus rapide que de le faire manuellement.
Dans ma réponse précédente, je te disais que ça prenait 50% du temps à faire les tests mais c’est probablement la même chose pour les tests manuelles. À chaque fois tu vas devoir prendre ta souris, entrer les champs correspondants et regarder l’exécution.
J’ai encore pleins de trucs à dire sur le sujet… c’est passionnant. N’hésites pas à poser des questions.