如何通过robotium测试listview?我只想检查项目是否进入oncreate事件。
我的活动有一个方法:
private void initListView() {
Adapter adapter =
new Adapter(this, myRepository.findAll());
listView.setAdapter(adapter);
}
MyRepository返回List。在ActivityInstrumentationTestCase2中,我想将一些项放入存储库,然后测试listView是否包含元素。
public void testListView_IsNotEmpty() {
Item i = new Item();
i.setSomething("item1");
getActivity().getMyRepository().insert(i);
assertTrue(solo.searchText("item1"));
}
是否可以通过机器人做到这一点?
最好的问候
答案 0 :(得分:1)
这是模拟框架的明显案例。我推荐jMockit,因为它是最先进的,适合用于防止存根的android库。因为你不喜欢测试android本身提供的类(你暗示相信他们做对了),你只需要测试一下:
测试用例如下所示:
@Test
public void testThatListInitializedProperly(@Mocked final ListView listView,
@Mocked final YourRepository repository,
@Mocked(methods = {"initListView"}, inverse=true) final YourActivity activity,
@Mocked final Adapter adapter
) {
new Expectations() {
{
repository.findAll(); returns(someList);
new Adapter(activity, someList); returns(adapter);
listView.setAdapter(adapter);
}
};
activity.initListView(listView);
}
(请注意我调整了界面以便于模拟)