gpt4 book ai didi

iphone - 如何等待单元测试动画完成

转载 作者:行者123 更新时间:2023-12-03 20:28:28 26 4
gpt4 key购买 nike

我正在使用 Xcode 的 OCUnit 编写单元测试,并且我的测试调用执行动画的方法。我希望测试方法仅在动画完成后继续。

执行动画的方法没有动画委托(delegate),我认为它不应该有。

如何在测试方法中等待动画结束而不设置动​​画委托(delegate)?

最佳答案

你不想真正等待动画;这将花费动画运行所需的时间。如果您有几千次测试,这可能会增加。

更有效的方法是在类别中模拟出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

上面只是立即执行动画 block ,如果也提供了完成 block ,则立即执行。

关于iphone - 如何等待单元测试动画完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7066667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com