Robolectric-2.3测试动画

问题描述 投票:3回答:2

我正在用Robolectric-2.3为我的项目编写测试。

我想测试我的UI属性,例如视图可见性。显示/隐藏视图的操作包含在动画中。怎么测试呢?

我试图使用ShadowSystemClock.sleep()方法等到动画结束但它似乎没有像我预期的那样工作。

@Test
public void testHideSearch() throws Exception {
    mListFragment.hideSearch();   //<--- animation launched here
    sleep(1000);
    View searchEditText = mListFragment.getView().findViewById(R.id.filterEditText);
    assertFalse(searchEditText.getVisibility() == View.VISIBLE);
}

这个问题的正确方法是什么?

android animation robolectric
2个回答
1
投票

尝试使用此而不是睡眠:

Robolectric.getUiThreadScheduler.advanceBy(1000);

-1
投票

如果您使用Animator,您的方法应该有效,但如果您使用动画,则需要使用ShadowAnimation。假设在onAnimationEnd()中更改了视图的实际可见性,则以下内容应该起作用:

ShadowAnimation animation = Robolectric.shadowOf(searchEditText.getAnimation());
animation.invokeEnd();
© www.soinside.com 2019 - 2024. All rights reserved.