XCTest and asynchronous testing in Xcode 6 XCTest and asynchronous testing in Xcode 6 ios ios

XCTest and asynchronous testing in Xcode 6


Obj-C example:

- (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);        }    }];}


The sessions video is perfect, basically you want to do something like this

func testFetchNews() {    let expectation = self.expectationWithDescription("fetch posts")    Post.fetch(.Top, completion: {(posts: [Post]!, error: Fetcher.ResponseError!) in        XCTAssert(true, "Pass")        expectation.fulfill()    })    self.waitForExpectationsWithTimeout(5.0, handler: nil)}