这个库是ishkawa/NSRunLoop-PerformBlock的封装。
您可以使用Mocha的done
风格来编写异步测试案例。
@interface ExampleTests : XCTestCase
@end
@implementation ExampleTests
- (void)testExample{
[self runAsyncWithBlock:^(AsyncDone done) {
// async function
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_after(popTime, queue, ^(void){
done();// => done async test
});
}];
}
@end
typedef void(^AsyncDone)();
@interface XCTestCase (RunAsync)
- (void)runAsyncWithBlock:(void (^)(AsyncDone done)) runTestCode;
- (void)runAsyncWithBlock:(void (^)(AsyncDone done)) runTestCode timeout:(NSTimeInterval) timeout;
@end
XCTestCase+RunAsync基于MIT许可证。请查阅LICENSE文件获取更多信息。