2015-10-27 111 views
0

我正在编写一些单元测试,我想在测试运行时忽略后端调用,所以忽略AFURLConnectionOperation。我正在使用OCMClassMock,并预计它会表现得很好。对任何AFURLConnectionOperation类型的对象的调用应该被忽略,而不会产生任何异常。这似乎并非如此。呼叫不被忽略。我究竟做错了什么?OCMClassMock忽略类

OCMClassMock([AFURLConnectionOperation类])

回答

0

这取决于你如何使用AFURLConnectionOperation代码工作。你的代码是否调用类方法?或每次实例化?

这个例子是如果你使用实例方法:

id mockAF = OCMClassMock([AFURLConnectionOperation class]); 
OCMStub([mockAF initWithRequest:[OCMArg any]]).andReturn(mockAF); 

你需要调用此为每次运行测试(即设置方法)。

这将在任何时候新实例被实例化并且应该捕获您的网络调用时返回模拟对象。

+0

我的代码每次实例化,所以这是行不通的。我将不得不注入对象来使其工作。 – Alan

+0

所以这将工作。在我的例子中,mockAF可以用来模拟类方法和实例方法。您可以将它存根以接收任何实例调用,然后将其注入到您的测试中(或您使用的任何其他架构师)。如果发布您的代码段,我可能会演示更好。 – AShavit