异步过程简单的测试助手。
您只需要使用 WAIT
和 RESUME
。
- (void)testExample
{
__block NSString *response = nil;
[self requestGetAsyncronous:^(id res, NSError *error) {
response = res;
RESUME;
}];
WAIT;
XCTAssertEqualObjects(response, @"OK!");
}
想要通知状态(如 GHUnit)时。
- (void)testExample
{
[self requestGetAsyncronous:^(id res, NSError *error) {
if (error) {
RESUME_WITH(TKRGuardStatusFailure);
} else {
RESUME_WITH(TKRGuardStatusSuccess);
}
}];
WAIT_FOR(TKRGuardStatusSuccess);
}
想要修改默认的超时间隔时。
// default is 1.0
[TKRGuard setDefaultTimeoutInterval:2.0];
想要等待某些恢复时。
__block NSString *response1 = nil;
[self requestGetAsyncronous:^(id res, NSError *error) {
response1 = res;
RESUME;
}];
__block NSString *response2 = nil;
[self requestGetAsyncronous:^(id res, NSError *error) {
response2 = res;
RESUME;
}];
WAIT_TIMES(2);
XCTAssertEqualObjects(response1, @"1");
XCTAssertEqualObjects(response2, @"2");
不想要使用简写宏时。
#define UNUSE_TKRGUARD_SHORTHAND
- (void)testExample
{
__block id result = nil;
[self requestGetAsyncronous:^(id res, NSError *error) {
result = res;
[TKRGuard resumeForKey:@"xxx"];
}];
[TKRGuard waitWithTimeout:1.0 forKey:@"xxx"];
XCTAssertEqualObjects(response, @"OK!");
}
将 TKRGuard 子目录添加到项目中。
并
#import "TKRGuard.h"