我正在嘗試爲使用Parse後端框架的iOS應用程序編寫單元測試,並且在嘗試編寫成功的單元測試後,大量實驗似乎失敗了。我在測試異步代碼(Testing asynchronous call in unit test in iOS)和測試網絡調用時發現了幾篇文章,但我還沒有找到使用異步回調測試對Parse後端調用的方法。單元測試解析框架iOS
舉個例子,任何人都可以建議我怎麼會測試下面的代碼行:
[PFUser saveUser:userModelMock withBlock:^(BOOL success, NSError *error) {
}];
我使用OCMock和XCTest框架。
任何幫助將不勝感激。
*編輯* 這是我到目前爲止,但似乎未能
- (void)testSaveUser {
id userModelMock = [OCMockObject niceMockForClass:[UserModel class]];
id userControllerMock = [OCMockObject niceMockForClass:[self.userController class]];
[[userModelMock expect] saveInBackgroundWithBlock:[OCMArg any]];
[[userControllerMock stub] saveUser:userModelMock withBlock:[OCMArg any]];
[userModelMock verify];
}
它是什麼,你想測試? PFUser希望有它自己的單元測試,所以你的測試應該依靠它作爲廣告運行,你可以簡單地嘲笑調用saveUser:withBlock :.如果你想測試你的異步回調是否按預期工作,這個答案可能會有所幫助:http://stackoverflow.com/a/20694495/449161 –
同意,我會想象解析有內部測試 - 但我是PFUser的子類,並已創建一個處理所有數據交互的控制器。在控制器中,我有一個調用saveUser的方法,所以在測試中我需要驗證saveUser:當我調用包裝它的方法時調用它。 –
如果您正在測試控制器是否從另一種方法調用此方法,則只需使用mock和'expect「作爲PFUser對象並從測試中調用控制器方法。如果該調用是異步的,請按照您鏈接的帖子中的模型進行操作。或者我錯過了什麼? –