ios - Xcode 6 中的 XCTest 和异步测试

标签 ios xcode xctest

所以Apple在Xcode 6的release note中说我们现在可以直接用XCTest做异步测试了。

有谁知道如何使用 Xcode 6 Beta 3(使用 objective-C 或 Swift)做到这一点?我不想要已知的信号量方法,而是新的 Apple 方式。

我搜索了已发布的笔记等,但一无所获。 XCTest header 也不是很明确。

最佳答案

Obj-C 示例:

- (void)testAsyncMethod
{

    //Expectation
    XCTestExpectation *expectation = [self expectationWithDescription:@"Testing Async Method Works!"];

    [MyClass asyncMethodWithCompletionBlock:^(NSError *error, NSHTTPURLResponse *httpResponse, NSData *data) {

        if(error)
        {
            NSLog(@"error is: %@", error);
        }else{
            NSInteger statusCode = [httpResponse statusCode];
            XCTAssertEqual(statusCode, 200);
            [expectation fulfill];
        }

    }];


    [self waitForExpectationsWithTimeout:5.0 handler:^(NSError *error) {

        if(error)
        {
            XCTFail(@"Expectation Failed with error: %@", error);
        }

    }];
}

关于ios - Xcode 6 中的 XCTest 和异步测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24704338/

相关文章:

ios - Facebook iOS iOS SDK登录错误

ios - cordova ios 中的基本身份验证失败

ios - BlocksKit 和 Xcode 4.5

ios - @testable 导入出现奇怪的编译错误

ios - 在自定义单元格内动态添加标签

iOS系统组错误信息

ios - 如何组织一个依赖于pod的框架项目?

ios - 作为 Xcode 构建过程的一部分,如何运行上传符号以上传 dSYM?

swift - 在 Swift 中如何测试索引是否超出范围?

ios - XCTests 间歇性地无法在模拟器中启动应用程序