我目前正在研究如何有效地向我的应用程序的ViewControllers添加一些单元测试。到目前为止,这项工作进行得非常顺利,直到我尝试让一个特定的视图控制器呈现另一个视图控制器。
我正在使用OCMock和XCTest。测试如下:
id partialMock = OCMPartialMock([TestViewController class]);
[partialMock doSomeStuff];
OCMVerify([partialMock presentViewController:[OCMArg any] animated:[OCMArg any] completion:[OCMArg any]]);
如您所见,我只想验证在
doSomeStuff
函数内调用了被测试视图控制器的presentViewController
。请注意,所提供的示例是我目前拥有的简化版。主要区别在于我正在验证参数viewController
是另一个模拟对象。问题是由于未对
doSomeStuff
方法进行存根处理,因此该调用将转发到真正的TestViewController
实例,然后在自身上调用presentViewController,从而未触发partialMock的验证。我是否遗漏了什么?或者说,我所尝试实现的确实无法完成?