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
0
A
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]);