zl程序教程

您现在的位置是:首页 >  其他

当前栏目

xcode6 AsynchronousTesting 异步任务测试

测试异步 任务
2023-09-11 14:15:06 时间

xcode集成了非常方便的测试框架,XCTest

在xcode6之后,提供了 <XCTest/XCTestCase+AsynchronousTesting.h>

利用此我们可以直接在XCTest里面测试一些异步的任务,比如异步网络请求

如下示例

- (void)testExample {

    
    XCTestExpectation *exception = [self expectationWithDescription:@"TestException"];
    
    [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://httpbin.org/get"]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        
        XCTAssertNil(connectionError,@"connectionError should nil");
        NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);
        [exception fulfill];
        
    }];
    
    [self waitForExpectationsWithTimeout:5.0f handler:nil];
}

另外 可以使用 measureBlock 测试性能:

- (void)testPerformanceExample {
    // This is an example of a performance test case.
    [self measureBlock:^{
        
        for (int i = 0; i < 10; i++) {
            NSLog(@"%d",i);
        }
    }];
}