我想在Android中测试以下方法。我用过Junit和Mockito。
如何模拟contentResolver.delete
方法?
答案 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);
}
提示:您不应该测试私有方法。因此,要么尝试提高可见性,要么将该代码移到一个单独的类中。