所以在我的测试中调用它来布局 recyclerview 之后:
recyclerView.addOnItemTouchListener(listener);
recyclerView.measure(0, 0);
recyclerView.layout(0, 0, 100, 10000);
我的 OnItemTouchListener
是:
listener = new RecyclerOnTouchListener(this, new RecyclerOnTouchListener.OnItemClickListener() {
@Override
public void onItemClick(View v, int position) {
Toast.makeText(this, "Sample toast", Toast.LENGTH_SHORT).show();
}
});
我想声明:
Assertions.assertThat(ShadowToast.getTextOfLatestToast()).isEqualToIgnoringCase("Sample Toast");
我需要在 recyclerview 上模拟项目点击。我正在做的是:
recyclerView.findViewHolderForAdapterPosition(0).itemView.performClick();
recyclerView.performClick()
并且它们都返回 false,这意味着它们中没有 onclick 监听器被调用。
那么我们如何在recyclerview中真正测试OnItemTouchListener
呢?在 Robolectric 中?
如有任何帮助,我们将不胜感激。谢谢!
最佳答案
我有一个类似的问题,通过在 setAdapter 之前添加行来解决:
recyclerView.setLayoutManager(LinearLayoutManager(this))
关于android - 单元测试 RecyclerView OnItemTouchListener Robolectric,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38650121/