gpt4 book ai didi

android - 同步 CursorLoader 测试用例的最佳实践

转载 作者:行者123 更新时间:2023-11-29 01:49:57 25 4
gpt4 key购买 nike

我刚改用 CursorLoaders,但在编写使用它们的测试时遇到了问题。由于使用 CursorLoader 方法将查询从主线程中取出,getInstrumentation().waitForIdleSync() 在更新适配器之前返回(或者至少这是我的理论)。我试图避免这是我所有的测试

public void testUpdateList() throws InvalidRecord, InterruptedException {
ListView listView = frag.getListView();
// Verify list is empty
assertEquals(0, listView.getCount());

// Add transaction directly into database
transTable.addOccurrences(resolver, TestUtils.createMockTrans());

//Don't want to do this but it works.
synchronized (this) {
wait(500);
assertEquals(1, listView.getCount());
}
}

所以我的问题是,是否有更好的方法在 Android 测试框架内测试此功能?

最佳答案

我确定的解决方案是在 Robotium 中使用 waitForCondition 方法。这是一个例子。

...
// Waits for 500 milliseconds for the condition to be meet.
// If it isn't meet within this time limit the result is false.
boolean isSatisfied = solo.waitForCondition( new Condition() {
public boolean isSatisfied() {
return listView.getCount() == 1;
}, 500);

//Then I check if the condition has been meet.
assertTrue(isSatisfied);
...

关于android - 同步 CursorLoader 测试用例的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18816476/

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