Je me demande comment procéder pour tester cela. J'ai une méthode qui prend un paramètre, et basé sur certaines propriétés de ce paramètre, il crée un autre objet et fonctionne sur elle. Le code ressemble à ceci:Comment puis-je tester un objet interne à une méthode en Objective-C?
- (void) navigate:(NavContext *)context {
Destination * dest = [[Destination alloc] initWithContext:context];
if (context.isValid) {
[dest doSomething];
} else {
// something else
}
[dest release];
}
Ce que je veux vérifier est que si context.isValid est vrai, que doSomething est appelé dest, mais je ne sais pas comment tester (ou si c'est même possible) en utilisant OCMock ou toute autre méthode de test traditionnelle puisque cet objet est entièrement créé dans le cadre de la méthode. Est-ce que je vais à ce sujet dans le mauvais sens?
Cela semble être la réponse la plus facile, mais il semble un peu compliqué d'avoir l'objet de destination dans plusieurs portées quand ce n'est pas vraiment nécessaire ailleurs, juste pour supporter des tests faciles. Je suppose que les compromis doivent être faits quelque part :) – Kevlar
Yep; Si vous voulez être capable de substituer un objet Destination séparé, alors vous devez avoir un moyen de le transmettre. C'est le moyen le plus propre que je connaisse de le faire. –