ada*_*ton 2 iphone animation unit-testing core-animation ocunit
我正在使用Xcode的OCUnit来编写单元测试,我的测试调用了一个执行动画的方法.我希望测试方法仅在动画完成后继续.
执行动画的方法没有动画委托,我认为它不应该有.
如何在不设置动画委托的情况下等待动画以测试方法结束?
你不想真正等待动画; 这需要花费动画运行的时间.如果你有几千个测试,这可以加起来.
更有效的是在类别中模拟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
Run Code Online (Sandbox Code Playgroud)
上面只是立即执行动画块,如果也提供了立即完成块.