Question

Je voudrais écrire quelques tests pour l'interface graphique de mon programme de cacao.

Y at-il un bon cadre de tests de GUI pour les applications Cocoa? La seule chose que je trouve est Ecraser , qui, à 2.400 € , est bien au-delà de mon budget ...

Toutes les idées? Comment les Testez votre cacao GUIs?

Était-ce utile?

La solution

Cela dépend de ce que vous entendez par "testing Cocoa interfaces graphiques."

Si vous voulez des outils comme le vieux virtuel outil utilisateur inclus avec MPW, puis ceux-ci sont peu et loin entre; vous regarderez à des outils tels que Ecraser et Aubergine.

Si vous voulez écrire tests unitaires pour l'interface humaine de votre application, je vous suggère de suivre un " confiance, mais vérifier » où vous confiance que tant que vous faites les bonnes connexions (en fonction de votre cadre ) que votre utilisateur peut interagir correctement avec votre cadre. Cela signifie que vous pouvez faire la majorité de vos tests par Verifying votre modèle et le code du contrôleur sont accrochés à vos vues correctement.

Sur mon blog, j'ai écrit quelques exemples de la façon de le faire spécifiquement avec Cocoa, un pour utilisateur de test construit avec cible d'action, et un pour interfaces utilisateur de test construites avec des liaisons de cacao . (Rappelez-vous, bien sûr, que les deux technologies ne sont pas exclusives: Si vous voulez faire glisser-déposer dans une vue de table gérée via des liaisons Cocoa, vous auriez aussi avoir une source de données et probablement un délégué accroché par cible action .)

La chose que je ne vous écris pas de tests unitaires pour - généralement - est le positionnement ou le type de contrôles dans leur superview. Parfois, ce qui est important pour obtenir et conserver correctement, cependant; dans ce cas, je peux interroger les propriétés appropriées des contrôles et de les vérifier en utilisant les assertions standard.

Ce que je pratiquement jamais faire est le code d'écriture pour "simuler des événements." Le plus proche que j'ai jamais venu qui construit un faux objet info glisser et passer à une vue que les grandes lignes source de données pour assurer qu'elle traitera correctement dragues.

Autres conseils

Je vous suggère de jeter un oeil à Google Boîte à outils pour Macintosh . Il a, entre autres goodies sympa, un très bel ensemble de l'état et de rendu des ajouts de test pour NSView et CALayers. Dans vos tests unitaires, vous prétendez que l'état vue / couche ou de l'image rendu correspond à un modèle enregistré (par nom). Si le modèle n'existe pas dans le faisceau de test ou ne correspond pas à la version enregistrée, un nouvel état codé ou TIFF rendu est produit aux fins d'examen. GTM fournit des catégories pour NSView et CALayer à faire état de codage et le rendu. Il est évident que vous pouvez remplacer ces catégories sur vos propres sous-classes NSView ou CALayer pour coder l'état concerné (en utilisant le protocole NSCoder) ou le rendu.

Il vous permet également de (facilement) envoyer des événements clés et programatically exécuter la boucle d'exécution à partir des tests unitaires et il prend en charge les tests unitaires sur les deux OS X et iPhone.

J'ai créé un package Python open source qui utilise l'API d'Apple Accessibilité entre autres pour créer une bibliothèque d'automatisation de l'interface classique, vous donnant une visibilité sur l'interaction avec Cocoa GUIs. PyATOM page d'accueil

Vous pouvez consulter et examiner Aubergine par TestPlant (officiellement Redstone Software) http://www.testplant.com / .

est un article que Apple a présenté sur eux l'an dernier.

Le dernier podcast CocoaCast a une entrevue avec Ian Dees l'auteur de « GUI Test avec Ruby scripté ». Vous pouvez en savoir plus sur CocoaCast

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top