2016-01-20 65 views

回答

0

如果您在視圖中引用了彈出窗口,則可以對其進行部分模擬,然後驗證是否調用了當前方法。這將是這個樣子:

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

如果你沒有和/或不想要的酥料餅的引用,你可能將不得不作出的UIPopOverViewController一類模擬,存根其initWithContentViewController:到返回類模擬,然後你可以驗證現在被調用的方式與上面類似。

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