听起来您需要一个信号量或类似的东西来阻止执行,直到请求返回。单元测试一直运行到方法结束。如果他们在没有错误的情况下完成了方法,那么他们就成功了。由于您使用 MKNetworkKit,服务器请求是异步的,因此在请求完成之前就已经结束了该方法。我找到了一个帮助类来帮助进行单元测试。我会尝试再次找到它并使用一些示例代码链接到它。
找到它:http ://www.touch-code-magazine.com/unit-testing-for-blocks-based-apis/
所以我已经有一段时间没有写这些测试了。我很确定这会起作用,但您可能需要对其进行调整。
-(void)tests {
//setup
NSString *key = @"myTestKey";
//test
STAssertNoThrow(
[API resetPassword:@"fakeemail@this.net callback:^(NSDictionary *result) {
STAssertNotNil(result, @"reset pass response was nil"]);
[[TestSemaphor sharedInstance] lift:key];
} error:^(NSDictionary *error) {
STFail(@"reset password failed: %@", error.description);
[[TestSemaphor sharedInstance] lift:key];
}], @"reset password failed");
[[TestSemaphor sharedInstance] waitForKey:key];
}