Jav*_*per 7 navigation animation android android-espresso
我在做一些 Espresso UI 测试时遇到了一个问题:我想在我的应用程序中禁用动画,这样我就不需要设置超时/需要等待动画完成。
在我的 android 设备上的开发人员选项中禁用 Window 动画比例、过渡动画比例、Animator 持续时间比例不会在使用 android 导航组件在片段之间导航时禁用动画。
动画设置如下:
<action
android:id="@+id/confirmationAction"
app:destination="@id/confirmationFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right" />
Run Code Online (Sandbox Code Playgroud)
如何在运行 espresso UI 测试时禁用此动画?
更新:
我按照谷歌的这个指南关于使用导航组件在片段之间导航。
然后我查看了谷歌关于用 Espresso 测试我的应用程序的指南,在我发现的第一个指南和第二个指南中,第一点是通过开发人员选项禁用动画,因此我认为这是正确的方法禁用动画
经过更多研究,我发现 Espresso 在执行断言之前会自动等待 UI 线程上的所有动画完成。
通常,如果您使用普通动画,则无需执行任何操作。
如果您必须等待服务调用在 Espresso 测试中返回值,您可以编写一些代码来 (kotlin) 扩展 ViewInteraction 类。在扩展类中,您可以执行 check 方法并捕获任何错误。如果出现错误,您可以给出一个小的超时(20ms),然后尝试使用 while 循环再次执行它。如果 2-3 秒后仍然有异常,则可以抛出该异常
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |