此仓库包含由iHeartRadio公开发布的代码,旨在扩展并简化使用Apple的XCTest框架进行测试。您可自由使用、复制和修改此代码,若存在则须维护和尊重原始的版权声明。
GHUnit的异步测试类GHAsyncUnitTestCase
的XCTest功能导出替换。这个类将允许您使用常规的XCTest目标测试异步行为,以便它们可以从Xcode或Xcode Server中轻松运行。
将文件XCTAsyncTestCase.h
和XCTAsyncTestCase.m
拖入您的项目中,并将它们添加到您的iOS测试目标中。
使用代码块的示例测试用例《TestAsync.m》
@interface TestAsync : XCTAsyncTestCase
@end
@implementation TestAsync
- (void)testBlockSample
{
[self prepare];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(){
sleep(1.0);
[self notify:kXCTUnitWaitStatusSuccess];
});
// Will wait for 2 seconds before expecting the test to have status success
// Potential statuses are:
// kXCTUnitWaitStatusUnknown, initial status
// kXCTUnitWaitStatusSuccess, indicates a successful callback
// kXCTUnitWaitStatusFailure, indicates a failed callback, e.g login operation failed
// kXCTUnitWaitStatusCancelled, indicates the operation was cancelled
[self waitForStatus:kXCTUnitWaitStatusSuccess timeout:2.0];
}
将任何旧的GHUnit测试类自动转换为Apple的XCTests的脚本来搜索GHUnit的断言和类名,并将它们替换为相应的XCTest替代品。