CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ |
| LangLanguage | Obj-CObjective C |
| License | MIT |
| ReleasedLast Release | Dec 2014 |
Maintained by Unclaimed.
XCTestAsync is an extension to XCTest for asynchronous testing, and is based on SenTestingKitAsync.
There are currently two ways to add XCTestAsync to your project:
If you are not using CocoaPods, you can copy over XCTestAsync.h and XCTestAsync.m into your test target. In addition, you will need to add -ObjC to your test target linker flags.
To use XCTestAsync in your tests, do the following:
Import the header:
#import <XCTestAsync/XCTestAsync.h>
Add your test method that ends with the suffix Async:
- (void)testMethodAsync
{
// your async code here
}
Tell XCTestAsync when the test succeeds:
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^{
XCAsyncSuccess();
});
Once your async tests start, XCTestAsync will wait until either a failure occurs (by calling assertions such as XCTFail(…) or XCTAssert(…)) or a success is signalled (by calling XCAsyncSuccess()). If neither of these happen, XCTestAsync will wait indefinitely.
If you expect your async test to run within a specified amount of time, you can specify a time limit by calling XCAsyncFailAfter(timeout, description, …). If a success is not signalled within the time limit, the test will fail after timeout number of seconds.