Wanted but not invoked:
view.showPlayerActivity(null);
Actually, there were zero interactions with this mock.
@RunWith(PowerMockRunner.class)
@PrepareForTest(Log.class)
public class MyDriverPresenterTest {
@Mock
private MyDriveRepository mydriveRepository;
private MyDrivePresenter drivePresenter;
private Drive drive;
private List<Drive> driveList;
@Before
public void setUpMyRecrdingsPresenter(){
PowerMockito.mockStatic(Log.class);
MockitoAnnotations.initMocks(this);
drivePresenter = new MyDrivePresenter();
drive = new Drive("Roar",false,1521708960,11);
driveList.add(drive);
}
@Test
public void testDriveClicked(){
Uri uri=mydriveRepository.
getMyDriveItemSelectedPathUri(drive.toFile().getName());
verify(view).showPlayerActivity(uri);
}
}
@Override
public void onDriveClicked(Drive drive) {
Uri uri = mydriveRepository.getMyDriveItemSelectedPathUri(drive.toFile().getName());
Log.i("TAG", "onRecordingClicked: "+uri);
view.showPlayerActivity(uri);
}
public Uri getMyDriveItemSelectedPathUri(String name){
Uri pathUri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
pathUri = FileProvider.getUriForFile(context,"com.mypackagename",new File(getUserMixDir(),name));
}else{
pathUri = Uri.parse("file://"+new File(getUserMixDir(),name));
}
return pathUri;
}
MyDriveRepository.getMyDriveItemSelectedPathuri一直返回null。我试着查看以下链接https://stackoverflow.com/questions/20551926/exception-mockito-wanted-but-not-invoked-actural-there-there-zero-interaction?rq=1
,但没有找到解决问题的方法。
它看起来像是在嘲笑存储库,所以您需要在演示者调用存储库方法时提供一个行为:
when(mydriveRepository.getMyDriveItemSelectedPathUri(anyString())).thenReturn(mockedUri);
因此,您的测试将如下所示:
@Mock
MyDriveRepository mydriveRepository;
@Mock
Uri mockedUri;
@Test
public void testDriveClicked() {
String filePath = "aPAth";
presenter.onDriveClicked(drive);
Uri uri = mydriveRepository.getMyDriveItemSelectedPathUri(filePath);
verify(view).showPlayerActivity(uri);
}
因此,基本上在这里,您将测试演示者是否使用伪生成的URI调用视图方法。当演示者调用存储库上的getMyDriveItemSelectedPathUri方法时,您将告诉框架(mockito)返回一个模拟URI。然后,当您测试视图中的方法是否被演示者调用时,才是真正的测试。
更新下面是异常消息: 更新2用真实实例替换mocked WithDefinitions对象后,我得到以下输出:
我尝试了例外情况下给出的解决方案:mockito想要但没有调用,实际上与这个mock没有任何交互,而这个mockito也想要但没有调用:实际上,与这个mock没有任何交互但仍然得到相同的错误。我是不是漏掉了什么?以下是me的实现:-
在执行以下步骤后,我得到了错误:想要但没有调用:实际上,与这个模拟没有任何交互。我不明白我在这里遗漏了什么。
我有接口 接口的实现是 我还有一节课 我正在尝试为MyClass编写JUnit。我已经做了 但我需要mockito但没有调用,实际上在验证调用时与这个mock没有任何交互。 谁能提出一些解决方案。
一开始我想对我的英语感到抱歉。 这是我测试后得到的: 有人能告诉我我做错了什么吗?
我已经通过StackOverflow上的帖子。 想要但没有被调用:实际上,这个模拟没有任何交互。 我确实做了被要求的事情,但我仍然错过了一些东西。你能帮帮我我错过了什么吗? 我的Java代码: 我的单元测试: 一切正常工作,除了我得到错误作为