【发布时间】:2018-02-26 13:05:53
【问题描述】:
在 Recycler View Adapter 我有这个方法:
public void addGridItemsToView(int position, Tile data) {
tileList.add(position, data);
notifyItemInserted(position);
}
我想对此方法进行单元测试并检查是否调用了notifyItemInserted(position)。
这是我的测试课:
public class AdapterTest {
@Mock
private LiveZoneGridAdapter liveZoneGridAdapter;
@Mock
Context context;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void addGridItemsToViewNotifiesParentAndAddsItemToTileList() {
liveZoneGridAdapter = spy(new LiveZoneGridAdapter(context));
doNothing().when((RecyclerView.Adapter) liveZoneGridAdapter).notifyItemInserted(anyInt());
liveZoneGridAdapter.addGridItemsToView(0, new Tile("test", 0, 0, "test"));
Mockito.verify(liveZoneGridAdapter).notifyItemInserted(0);
}
}
如果我像这样运行我的测试用例,它会在notifyItemInserted 上给出NullPointerException,这是RecyclerView.Adapter 类方法。
那么我该如何测试这个场景呢?
【问题讨论】:
-
我没有检查项目点击。请阅读问题。
标签: android unit-testing junit mockito