J'utilise VS2005 et NUnit.Test de fenêtres contextuelles en utilisant NUnit
Je voudrais savoir s'il existe un moyen de tester les popups en utilisant simplement NUnit.
button1.click();<-Find/Assert if the popup window has been opened->
J'utilise VS2005 et NUnit.Test de fenêtres contextuelles en utilisant NUnit
Je voudrais savoir s'il existe un moyen de tester les popups en utilisant simplement NUnit.
button1.click();<-Find/Assert if the popup window has been opened->
Si vous testez si la fenêtre pop-up a ouvert ou non, alors je suppose que vous travaillez pour le navigateur et non votre projet :)
Ce type de fonctionnalité est testée à l'aide NMock ou Rhino.Mocks, Dans lequel un objet fantaisie est créé, qui est équivalent à votre objet UI, et son "mocké" pour avoir des fonctionnalités de votre composant UI, qui est utilisé pour tester la fonctionnalité que vous attendez du composant/objet UI.
J'ai utilisé les fonctions non managées FindWindowEx
et CloseWindow
pour automatiser ce que vous essayez de faire qui pourrait convenir si vous connaissez, en toute confiance, le titre de la fenêtre contextuelle. (Je suppose que c'est sur une plate-forme Win32). Je l'ai utilisé pour tester une fonction qui crée une boîte de dialogue modale et ne retourne pas le contrôle au thread d'origine tant que la boîte de dialogue n'a pas été fermée (elle affirme que la fenêtre est trouvée et fermée avec succès). Ce n'est pas tout à fait NUnit casher, mais cela a fonctionné pour mes fins.
Si cela vous semble utile, je peux produire un extrait, mais c'est un cas d'utilisation assez spécifique.
À mon humble avis, c'est généralement une mauvaise idée de tester l'interface utilisateur. La nature même des interfaces utilisateur les rend problématiques pour les tests automatisés. Ils sont fluides, et sont changés fréquemment, beaucoup plus fréquemment que d'autres codes, de manière à briser tous les tests. De nombreux tests automatisés ne peuvent être résolus qu'en prenant des clichés d'image, ce qui est évidemment très fragile. Les problèmes de temps deviennent extrêmement problématiques. Enfin, une telle automatisation repose sur le contrôle de l'intégralité de l'interface utilisateur, y compris les périphériques d'E/S tels que le clavier et la souris. Cela signifie qu'aucune autre activité ne peut être effectuée sur le système pendant que les tests sont exécutés de peur d'interrompre les tests en cours. Il est préférable de retirer autant de fonctionnalités que possible de l'interface utilisateur (des modèles tels que Presentation Model vous aident) et de tester cette fonctionnalité à la place. Cela dit, si vous devez insister et/ou insister pour créer des tests automatisés pour l'interface utilisateur, il est préférable d'utiliser une bibliothèque d'automatisation conçue pour cela. Pour WinForms et WPF, White est un bon exemple d'une telle bibliothèque.