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.