Existe-t-il un bon didacticiel sur les tests d'interface user automatisés avec le logiciel Cocoa Touch?

Typiquement, je trouve que presque tous mes cas de test les plus importants pour le développement de l'iPhone tournent autour du test de l'interface user plutôt que de la logique métier ou du test de données. Je ne suis pas très familier avec les tests d'interface user automatisés dans l'environnement XCode. Quelqu'un peut-il me diriger vers un bon tutoriel ou un bon livre?

METTRE À JOUR
Cette question a été écrite il y a plusieurs années et le test de l'interface user a parcouru un long path depuis lors. L'utilisation de l'UI Automation est toujours une option, mais le KIF Framework est une solution bien meilleure pour les tests fonctionnels maintenant, IMO.

De la page github de KIF:

KIF, qui signifie Keep It Functional, est un framework de test d'intégration iOS. Il permet une automation facile des applications iOS en exploitant les attributes d'accessibilité que le operating system met à la disposition des personnes ayant une déficience visuelle.

KIF construit et effectue les tests en utilisant une cible de test XCTest standard. Les tests sont effectués de manière synchrone dans le thread principal (en exécutant la boucle d'exécution pour forcer le passage du time), ce qui permet une logique et une composition plus complexes. Cela permet également à KIF de tirer parti du Xcode 5 Test Navigator, des outils de construction de command line et des rapports de test de Bot.

Votre meilleur pari sera d'utiliser l'instrument UI Automation qui a débuté avec iOS 4.0. Cela peut être scripté pour tester de nombreux aspects de votre interface user.

Apple propose une excellente introduction à cet outil dans la video de la session 306 de la WWDC 2010 – «Automatisation des tests d'interface user avec des instruments». Je montre comment configurer des scripts et faire des tests dans la video pour la session "Testing" de mon cours avancé de développement iOS sur iTunes U. Mes notes sur UI Automation de cette class, y compris des exemples de scripts, peuvent être trouvées ici .

En outre, vous pouvez consulter l'article de James Turner intitulé « Comment utiliser UIAutomation pour créer des tests d'interface user iPhone » et « Travailler avec UIAutomation » d'Alex Vollmer.

Qu'est-ce que vous essayez vraiment de tester? Je suis d'accord sur le fait que tester l'interaction est important, mais je peux généralement build une unité ou un test d'intégration qui teste la vue ou la vue et son controller pour valider ce comportement sans essayer de piloter l'application via l'interface user.

Par exemple http://blog.carbonfive.com/2010/03/10/testing-view-controllers/ a des exemples de tests qui testent que les vues UIKit sont liées à IBActions ou ont des delegates appropriés et qu'un controller répond à ces actions ou déléguer les messages de manière appropriée. Il n'est pas nécessaire de piloter un UIButton ou UITableView puisque je suis prêt à croire que ces classs fonctionnent réellement et qu'à la place il me suffit de tester mon utilisation et ma configuration.

Pour les composants de vue personnalisés, vous pouvez envoyer des messages UIResponder directement dans vos tests et affirmer qu'ils se comportent comme prévu, là encore sans entraîner toute l'interface user.

Pouvez-vous donner un exemple du type de comportement que vous voulez tester?