В вашем использовании -setup
метод либо семафор, как указано выше, или использовать dispatch_group. dispatch_group - мой предпочтительный подход.
@implementation XCTTestSubClass()
{
dispatch_group_t _dispatchGroup;
}
@end
-(id)init
{
_dispatchGroup = dispatch_group_create();
return [super init];
}
-(void)setup
{
dispatch_group_async(_dispatchGroup, dispatch_get_current_queue(), ^{
//your setup code here.
});
}
Затем переопределить -invokeTest
и убедитесь, что группа блоков (настройка) выполняется работает.
-(void)invokeTest
{
dispatch_group_notify(group, dispatch_get_current_queue(), ^{
[super invokeTest];
});
}
Это гарантирует, что тесты будут работать только после того, как -setup
завершена.