Ios UIPOPOverViewController的测试用例

Ios UIPOPOverViewController的测试用例,ios,objective-c,ipad,testcase,ocmock,Ios,Objective C,Ipad,Testcase,Ocmock,用于IPAD应用程序 我有一个以“加号”图标为背景的条形按钮项。 当我点击它时,我会显示一个UIPopOverViewController。 我想编写一个测试用例,检查单击plus按钮时是否显示PopOver。如果视图中有对PopOver的引用,可以对其进行部分模拟,然后验证是否调用了当前方法。它看起来像这样: MyViewController *vc = [[MyViewController alloc] init]; id popoverMock = OCMPartialMock(vc.po

用于IPAD应用程序 我有一个以“加号”图标为背景的条形按钮项。 当我点击它时,我会显示一个UIPopOverViewController。
我想编写一个测试用例,检查单击plus按钮时是否显示PopOver。

如果视图中有对PopOver的引用,可以对其进行部分模拟,然后验证是否调用了当前方法。它看起来像这样:

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]);
如果您没有和/或不想要对popover的引用,则可能必须对
UIPopOverViewController
进行类模拟,将其
initWithContentViewController:
存根以返回类模拟,然后您可以验证是否以与上述类似的方式调用了present

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