2016-01-20 1 views
0

Pour l'application IPAD J'ai un élément de barre avec une icône "Plus" comme arrière-plan. lorsque je clique dessus, j'affiche un contrôleur UIPopOverView. Je veux écrire un cas de test pour vérifier que le PopOver est affiché lorsque le bouton plus est cliqué.TestCase pour UIPOPOverViewController

Répondre

0

Si vous avez une référence à la popover dans votre vue, vous pouvez en faire un simulacre partiel, puis vérifier que la méthode actuelle est appelée. Il ressemblerait à quelque chose comme ceci:

MyViewController *vc = [[MyViewController alloc] init]; 
id popoverMock = OCMPartialMock(vc.popover); 
[vc pressPlusButton]; 
OCMVerify([popoverMock presentPopoverFromRect:OOCMOCK_ANY inView:OCMOCK_ANY permittedArrowDirections:OCMOCK_ANY animated:OCMOCK_ANY]); 

Si vous n'avez pas et/ou ne veulent pas une référence au popover, vous devrez probablement faire une maquette de classe de UIPopOverViewController, bouchonner son initWithContentViewController: à retourner la classe fictive, et puis vous pouvez vérifier que le présent a été appelé de la même manière que ci-dessus.

MyViewController *vc = [[MyViewController alloc] init]; 
id popoverMock = OCMClassMock(UIPopOverViewController); 
OCMStub([popoverMock initWithContentViewController:OCMOCK_ANY]).andReturn(popoverMock); 
[vc pressPlusButton]; 
OCMVerify([popoverMock presentPopoverFromRect:OOCMOCK_ANY inView:OCMOCK_ANY permittedArrowDirections:OCMOCK_ANY animated:OCMOCK_ANY]);