MTTestSemaphore 0.0.1

MTTestSemaphore 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布上次发布2014年12月

Unclaimed 维护。



  • Marin Todorov

一个类,可以帮助您创建测试异步方法的单元测试。您需要它来对从网络请求数据、使用位置、相机等任何类进行单元测试。

如何在您的项目中包含MTTestSemaphore

https://github.com/icanzilb/MTTestSemaphore克隆此存储库或将其作为zip文件下载。

MTTestSemaphore子文件夹的内容包含到您的项目中 - 请确保将MTTestSemaphore类包含在您的测试目标中。

如何在单元测试中使用MTTestSemaphore

使用[[MTTestSemaphore semaphore] waitForKey: @"myAwesomeKey"]在给定位置停止代码执行并等待(即等待您的异步代码执行完毕)

使用[[MTTestSemaphore semaphore] lift: @"myAwesomeKey"]在同一密钥停止的地方取消阻塞程序执行。

以下是一个完整示例,展示如何在测试用例中执行异步调用并等待其执行

-(void)testLocationAsyncNoComments
{
    NSString* sempahoreKey = @"testLocationAsync1";

    CLGeocoder* gc = [[CLGeocoder alloc] init];
    [gc geocodeAddressString:@"Triq Sant' Orsla, Valletta, Malta"
           completionHandler:^(NSArray *placemarks, NSError *error) {

               NSAssert(placemarks.count>0, @"the geocoder returned 0 results");
               [[MTTestSemaphor semaphore] lift: sempahoreKey];

           }];

    [[MTTestSemaphor semaphore] waitForKey: sempahoreKey];
}

下载并运行此存储库中的项目/测试项目,以查看MTTestSemaphore的使用方法