Android单元测试内容解析器类

时间:2019-01-07 09:08:38

标签: java android unit-testing junit mockito

我想在Android中测试以下方法。我用过Junit和Mockito。

如何模拟contentResolver.delete方法?

1 个答案:

答案 0 :(得分:2)

不要认为您需要在此处使用反射。

尝试

1)设置模拟的ContentResolver

2)期望在LauncherServerCallback

上调用某些方法
@Test
public void testDeleteUser() throws Exception
{
    // Arrange
    Launcher launcher = new Launcher();
    Mockito.doReturn(1).when(contentResolver).delete(UserProvider.CONTENT_USER_URI, null, null);

    // Act
    launcher.deleteUser(contentResolver,launcherServerCallback);

   // Assert
   Mockito.verify(launcherServerCallback).onSuccess(Mockito.anyString());
}

您可能还需要添加以下内容以启动Mockito引擎:

@Before
public void init(){
   MockitoAnnotations.initMocks(this);
}

提示:您不应该测试私有方法。因此,要么尝试提高可见性,要么将该代码移到一个单独的类中。