2009-07-13 2 views
6

J'essaie de simuler un UITabBarController dans les tests de mon application. J'ai une méthode de catégorie sur cette classe définie ailleurs dans un autre fichier qui est importé avec ocmock dans ma classe de test. ce que je suis en train de est donc ceci:Comment est-ce que je peux obtenir OCMock pour me permettre de remplacer une méthode de catégorie sur une classe UIKit?

- (void) setUp 
{ 
    id mockTabController = [OCMockObject mockForClass:[UITabBarController class]]; 
    [[[mockTabController stub] andReturn:nil] displayedViewController]; 
    // displayedViewController is the category method 
} 

mais quand je fais et le test arrive à cet appel stub, je reçois une erreur disant:

[NSProxy doesNotRecognizeSelector:displayedViewController] called! 

Y at-il quelque chose de spécifique que je dois faire pour autoriser ocmock à reconnaître les méthodes de catégorie sur les classes de structure intégrées?

Répondre

16

J'ai trouvé le problème; le fichier dans lequel la catégorie de classe était définie n'était pas dans la bonne cible dans mon projet. C'était dans la cible principale mais pas dans la cible du test unitaire. en l'ajoutant au bon endroit, cela a permis de le faire nager.

+3

Merci d'avoir documenté votre propre solution. Ça m'a aidé :) – nacho4d

Questions connexes