J'ai quelques problèmes en essayant de créer des tests d'intégration avec Selenium et NUnit. J'essaie d'utiliser Selenium RC dans le test NUnit pour piloter mon application web ASP.NET, et je voudrais que les tests fassent tout ce que l'utilisateur réel ferait. Naturellement, ce serait bien si la base de données pouvait être annulée après que Selenium l'ait fait, et j'ai affirmé que db contient les nouvelles lignes (etc) avec les données de l'interface utilisateur.Tests d'intégration utilisant Selenium et NUnit - De l'interface utilisateur à la base de données
Alors, voici la configuration que j'ai (dans une sorte de pseudo-code):
TestMethod()
{
Using(new TransActionScope)
{
Selenium.StartSelenium()
Selenium.SelectAndClickAndDoStuffInUI()
AssertSomething()
}
}
Maintenant, la SelectAndClickAndDoStuffInUI méthode clique autour de l'interface utilisateur et donc des incendies notre da-cadre exclusif. Notre framework écrit tout le contenu dans db, et la méthode AssertSomething affirme que tout va bien dans db. Framework utilise les transactions ("required") dans son fonctionnement interne.
Alors tout va bien, non? Non, malheureusement pas. Le TransActionScope dans l'exemple ci-dessus ne devrait pas être validé (pas de txScope.Complete() - appel là), et ainsi toutes les transactions internes devraient être annulées aussi, non? Eh bien, ils ne le font pas, et tout ce que Selenium fait par le biais de l'interface utilisateur s'engage à DB.
J'ai vraiment essayé de comprendre où cela ne va pas, mais jusqu'à présent, je n'ai pas trouvé la réponse.
Merci pour la lecture, et (enfin) voici la vraie question:
Pourquoi TransactionScope ne se retourne pas roulé dans le cas représenté dans mon exemple?
Je me ferai un plaisir de fournir des informations supplémentaires sur la situation et la configuration!
Merci! Cela l'a expliqué. Tout à fait évident quand on y pense :-) Le test que j'essaie de créer ne peut pas s'appuyer sur des objets fictifs, car je voudrais affirmer l'état de la base de données après les interactions de l'utilisateur. Je vais écrire une nouvelle question plus générale à ce sujet ... – juarola