我刚刚开始为Android代码编写单元测试并卡住了。
为这种平静的代码写作测试:
Intent intent = new Intent(context, Some.class);
intent.setAction(Some.SYNC_SERVICE_ACTION_SYNC);
context.startService(intent);
我想知道,如果有相同的意图,我可以使用Mockito进行测试类别以进行测试?
在测试中,我试图做这样的事情:
String action = "SyncService.SYNC_SERVICE_ACTION_SYNC";
when(context.startService(any())).thenReturn(Intent);
assertEquals("Do not match", action, Intent.getAction());
也许有人可以帮忙?
我找到了我的问题的答案,并从Mockito测试中获取有关您的班级意图的信息,您应该喜欢:
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
doReturn(null).when(context.startService(any()));
verify(context).startService(captor.capture());
String intentAction = captor.getValue().getAction();
我希望它能帮助某人!欢呼!
更新
由于某种原因无法使用
doReturn(null).when(context.startService(any()));
而是使用:
when(context.startService(any())).thenReturn(null);