当Activity有动画时如何进行Android单元测试

5

我正在编写涉及动画的活动单元测试,该动画是旋转具有无限持续时间(闪屏)的微调图像。

当我开始单元测试时,每个测试似乎都会等待动画完成,因此它们会无限卡住。 当我将持续时间设置为1时,所有测试都通过了,因为动画很快就结束了。

如何覆盖这一点,使测试不等待动画结束?

1个回答

1
我假设你想测试动画之外的行为。
将动画从你想要测试的代码路径中移开可能会对你有所帮助。这意味着将不依赖于动画的其他代码(从 Activity 中)移出。你可以在根本不运行该行为的情况下检查此行为。更好的方法是,在根本不启动 Activity 的情况下运行该行为(不调用 onCreate())。
你遇到的问题是直接将代码放入框架扩展点时发生的特殊情况:你的代码现在与框架交织在一起,你必须运行你不关心的内容才能运行你关心的部分。所以不要那样做。将你的代码放入不依赖于框架的类中,然后使用框架扩展点(在此情况下为 Activity)将 Android 与你的代码连接。Activity 知道你的代码存在。你的代码保持对 Android 无知,现在像动画这样的东西就不会妨碍它了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接