gpt4 book ai didi

android - 在测试 android UI 时,等待 UI 准备就绪的正确方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:22 24 4
gpt4 key购买 nike

测试看起来像这样(它是 ActivityInstrumentationTestCase2):

public void testItShowsThreeRows() {
activity = getActivity();

activity.runOnUiThread(new Runnable() {
public void run() {
AccountsList accountsList = new AccountsList(activity, accounts);
list.show();
}
});

ListView listView = (ListView)activity.findViewById(R.id.list);
assertEquals(3, listView.getChildCount());
}

我正在尝试测试的代码有效。但是测试失败了,因为 activity.runOnUiThread 立即返回。我可以插入 Thread.sleep 并且测试变为绿色,但对我来说它看起来有点笨拙。我是否必须使用一些线程同步或轮询一些 UI 元素是否准备就绪?

我尝试用 @UiThreadTest 注释它,但这也不起作用。 list.show() 中的代码通过自定义适配器填充 ListView 并在另一个线程上调用 getView(不是运行的测试 -我与此无关,我没有线程或异步任务,什么都没有)。测试再次失败,因为它在 UI 准备好接受检查之前返回。

最佳答案

调用 waitForIdleSync()比固定时间 sleep 要好。

关于android - 在测试 android UI 时,等待 UI 准备就绪的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com