涉及Mknetworkkit的iOS编写unit testing

我试图在我的项目中运行MKNetworkKit,似乎没有问题。 然后我创build了一个unit testing项目,并调用引擎发出一些请求(使用MkNetworkOperation)。 我没有得到明显的错误,但是completionhandler块永远不会被调用,errorblock也是如此。

我检查了我的unit testing设置,没有明显的错误,整个事情“跑”。 我只是没有得到任何回应。 如果我切换,并在我的主项目中这样做,它的工作原理。

我还为unit testing项目添加了所有必要的框架。

我注意到的一件事是可达性消息打印出来的情况下工作,但没有为没有的情况下。

任何线索到底是怎么回事?

听起来就像你需要一个信号或类似的东西阻塞执行,直到请求返回。 unit testing运行直到方法结束。 如果他们在没有错误的情况下结束了方法,那么他们是成功的。 自从使用MKNetworkKit以来,服务器请求是asynchronous的,所以在请求完成之前,方法的结束被命中。 我find了一个帮助类来帮助unit testing。 我会尝试再次find它,并用一些示例代码链接到它。

find它: http : //www.touch-code-magazine.com/unit-testing-for-blocks-based-apis/

所以我写这些testing已经有一段时间了。 我很确定这会工作,但你可能需要调整它。

-(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]; }