我目前正在研究如何有效地将一些单元测试添加到应用的ViewController中。到目前为止,它一直运行良好,直到我尝试让一个特定的视图控制器呈现另一个视图控制器为止。
我正在使用OCMock和XCTest。测试如下
id partialMock = OCMPartialMock([TestViewController class]);
[partialMock doSomeStuff];
OCMVerify([partialMock presentViewController:[OCMArg any] animated:[OCMArg any] completion:[OCMArg any]]);
如您所见,我只想验证函数presentViewController
内部已测试的视图控制器已调用了该doSomeStuff
函数。请注意,给出的示例是我目前所拥有的简化版本。主要区别在于,我正在验证该参数viewController
是另一个模拟对象。
问题是由于doSomeStuff
方法没有存根,因此该调用将被转发到实际TestViewController
实例,该实例再对其自身调用presentViewController,然后不触发partialMock的验证。
我有什么想念的吗?还是我要实现的目标真的不可撤消?
您可以andDo(nil)
按照2.10所述使用您想要抑制的方法进行存根:http : //ocmock.org/reference/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句