代码之家  ›  专栏  ›  技术社区  ›  Rainmaker

Espresso不使用Gif动画运行活动测试

  •  1
  • Rainmaker  · 技术社区  · 7 年前

    我在试着测试你的意图 Activity 还有一些按钮点击进来 Fragment (在同一活动中)与 Espresso 但问题在于 碎片 包含一个带有 Gif 里面有动画。自定义视图基本上是 Movie 要显示的类 Gif . 错误 我明白了

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

    因此,它表明我假设Gif导致加载主线程,而测试无法运行。 我 尝试:

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

    其中一个不起作用 。我假设此自定义视图不被平台视为动画,并且不会被关闭。我仍然可以看到它。我试着 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();
        }
    
    0 回复  |  直到 7 年前
        1
  •  0
  •   Benny    4 年前

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