OCMock和UIViewController

Mar*_*ubé 5 ocmock uiviewcontroller ios

我目前正在研究如何有效地将一些单元测试添加到我的应用程序的ViewControllers中.到目前为止,它工作得很好,直到我尝试了特定的视图控制器呈现另一个.

我正在使用OCMock和XCTest.测试如下

id partialMock = OCMPartialMock([TestViewController class]);
[partialMock doSomeStuff];
OCMVerify([partialMock presentViewController:[OCMArg any] animated:[OCMArg any] completion:[OCMArg any]]);
Run Code Online (Sandbox Code Playgroud)

如您所见,我只想验证是否presentViewControllerdoSomeStuff函数内调用了测试的视图控制器.请注意,给出的示例是我目前拥有的简化版本.主要区别在于我正在验证参数viewController是另一个模拟对象.

问题是因为doSomeStuff方法没有存根,然后调用被转发到TestViewController实例,然后实例调用presentViewController,然后不触发partialMock的验证.

有什么我想念的吗?或者我真正想要实现的是什么?

Eri*_*urg 1

andDo(nil)您可以使用2.10 中所述的方法来存根您想要抑制的方法:http: //ocmock.org/reference/