浓缩咖啡不会使用 Gif 动画运行活动测试



我正在尝试用Espresso测试Activity中的意图和Fragment中的一些按钮单击(在同一活动中(,但问题是Fragment包含一个带有Gif动画的自定义视图。自定义视图基本上是Movie类的变体,以显示Gif错误我得到的是

无法在 45 秒内启动意向意图。也许主要的 线程未在合理的时间内空闲

所以这表明我认为 Gif 导致主线程加载并且测试无法运行。 我尝试过:

  1. 关闭开发选项中的所有树动画比例(尝试了 2 台设备(
  2. 使用 Ui 自动操作并运行 shell adb 命令关闭动画
  3. 尝试将具有 GIF 可见性的视图设置为在测试期间消失

这些都不起作用。我想这个自定义视图不被平台视为动画,也不会被关闭。我仍然可以看到它。我试图findViewById并为gone设置可见性.启动测试时,视图仍然存在。我认为让视图消失是一个很好的解决方法,所以也许有人知道方法!

我的测试代码:

@RunWith(AndroidJUnit4.class) public class TutorialActivityTest {
private TutorialActivity tutorialActivity;
private TutorialFragment tutorialFragment;
@Rule
public ActivityTestRule<TutorialActivity> mActivityRule = new ActivityTestRule<>(TutorialActivity.class);
@Before
public void setUp() {
tutorialActivity = mActivityRule.getActivity();
//tried to set visibility there with fragment.getView().findViewById... And also in the test directly
@Test
public void testOpenMainPageIntentFired() {
Intents.init();
tutorialActivity.openMainPage();
intended(hasComponent(MainActivity.class.getName()));
Intents.release();
}

由于 GIF 动画将防止进入空闲状态,因此我建议在测试期间将 GIF 应该传递到的静态模拟图像资源。这样,您就不必隐藏视图,并且仍然像在生产环境中一样测试布局组合。

最新更新