J'ai beaucoup lu sur les tests E2E et une chose que je ne peux pas comprendre, c'est comment "réel" devrait être des tests E2E.
Quels que soient les outils que j'utilise pour les tests E2E, j'ai vu que la plupart du temps, ils ont frappé des environnements locaux, de développement ou alpha.
Si mon application a une authentification, dois-je créer un utilisateur "test" avec des informations d'identification valides dans la base de données? Dois-je faire cela pour des environnements alpha ou même de production? Comment savoir cet utilisateur de test se connecter à ma candidature?
Dis que j'ai la faucheuse d'application Todo. J'ai un test qui enregistre l'utilisateur dans. Après vous être connecté, je souhaite tester que l'utilisateur est capable de créer un TODO. Ce TODO est enregistré dans une base de données.
Après avoir exécuté les tests, devrais-je exécuter quelque chose pour supprimer les données créées lors des tests E2E? Ou devrais-je intercepter la demande juste avant de l'enregistrer et de se moquer de la réponse (ce serait-il un antidieupl pour les tests E2E)?
Voici comment nos tests fonctionnent. Ce degré d'effort peut ne pas être réalisable dans de nombreuses organisations, mais je pense que cela fonctionne très bien. Par rapport à votre question initiale, je pense que lorsque cela est possible, utilisez la chose réelle sur la moquure, par exemple, en utilisant une base de données réelle comme indiqué ci-dessous.
architecture de base
CI/CD complet est en place. CI fonctionne dans des conteneurs Docker. Toute cette stratégie de test (à l'exception des tests UAT) fonctionne pour chaque poussée.
middleware
extrémité avant
Standard, angular /== exécutés via le angular Outillage + karma.
Fin à la fin
tests UAT
Tests manuels effectués par les propriétaires de produits avant les libérations.