活动有动画时的Android单元测试

tap*_*oma 5 tdd animation android

我正在为动画活动编写单元测试.动画是旋转器可绘制的简单旋转,具有无限持续时间(闪屏).

当我开始单元测试时,每个测试似乎都等到动画结束,所以他们卡住了infinte,当我将持续时间设置为1时,它全部通过,导致动画快速结束.

我怎样才能覆盖它,所以测试不等动画结束?

J. *_*ger 1

我假设您打算测试动画以外的行为。

将动画移出要测试的代码的路径可能会让您受益匪浅。这意味着将其他代码(不依赖于动画的代码)移出活动。如果没有脱离Activity,那么,至少脱离Activity的生命周期方法(onCreate(),...)。然后,您可以检查此行为,而无需运行该行为。更好的是在不启动 Activity 的情况下运行该行为(不要调用 onCreate())。

您遇到的问题是当您将代码直接放入框架扩展点时发生的情况的特殊情况:然后您的代码与框架混合在一起,并且您陷入运行您不关心的东西以运行该部分你确实关心的。所以不要这样做。将您的代码放入不依赖于框架的类中,然后使用框架扩展点(本例中为 Activity)将 Android 连接到您的代码。Activity 知道您的代码存在;你的代码仍然对 Android 一无所知。现在,像动画这样的事情就不会妨碍你了。