我正在尝试为使用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对象并从测试中调用控制器方法。如果该调用是异步的,请按照您链接的帖子中的模型进行操作。或者我错过了什么? –