Вы не хотите на самом деле ждать анимации; это займет время анимации, чтобы запустить. Если у вас есть несколько тысяч тестов, это может сложиться.
Более эффективным является макетирование статического метода UIView в категории, чтобы он немедленно вступил в силу. Затем включите этот файл в цель теста (но не в цель приложения), чтобы категория была включена только в ваши тесты. Мы используем:
#import "UIView+SpecFlywheel.h"
@implementation UIView (SpecFlywheel)
#pragma mark - Animation
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion {
if (animations)
animations();
if (completion)
completion(YES);
}
@end
Вышеприведенное просто выполняет блок анимации немедленно и блок завершения немедленно, если он также предоставлен.