Je suis en train d'écrire des tests unitaires et, en raison de la nature de cette application particulière, il est important que j'arrive aussi haut que possible dans la hiérarchie des tests. UI
chaîne que possible. Ce que je voudrais faire, c'est déclencher par programmation une pression sur un bouton, comme si l'utilisateur avait appuyé sur le bouton dans la fenêtre de l'utilisateur. GUI
.
(Oui, oui je podría il suffit d'appeler le IBAction
mais, encore une fois, la nature de cette application particulière fait qu'il est important que je simule l'appui réel sur le bouton, de telle sorte que le IBAction
être appelé à partir du bouton, lui-même).
Quelle est la méthode préférée pour ce faire ?
0 votes
Pourriez-vous expliquer pourquoi il est important de simuler le toucher du bouton plutôt que d'appeler directement la méthode d'action ? Il n'y a pas vraiment de différence pratique.
1 votes
@Jasarien : bien, parce qu'il y a une différence ! ;) Dans mon application, plusieurs boutons utilisent la même méthode d'action, et la méthode analyse comment se comporter en fonction de la balise du bouton. Donc le test unitaire, en plus de tester un chemin de code particulier à travers la méthode, (a) doit les tester tous et (b) vérifie également que les boutons sont correctement câblés. De plus, cela permet de bien abstraire ma suite de tests unitaires, car je peux définir les tests unitaires comme des lignes dans un fichier texte avec quelque chose comme ceci : "1 + 2 = 3" où "3" est l'affichage final attendu, et tout ce qui précède est le bouton à presser.
0 votes
Votre méthode d'action n'a-t-elle pas un paramètre (id)sender ? Ne pourriez-vous pas simplement appeler la méthode et passer le bouton comme expéditeur ?
3 votes
En raison de la nature abstraite de mon harnais de test, je ne SAVOIR la méthode qui doit être appelée pour un bouton particulier. Je suppose que je pourrais creuser dans le bouton et l'obtenir, mais faire sendActionsForControlEvents : fait tout cela pour moi, avec moins de possibilités d'erreur, et garde le test abstrait et conforme à la conception.