2015-10-27 113 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