我有以下设计:
public class MyService extends Service{
protected Logger _log;
int _counter;
onStartCommand(...){
_log.print (++_counter);
}
}
public class MyServiceTestWrapper extends MyService{
public void setLog(Logger mockLogger){ _logger = mockLogger; }
}
public class MyServiceTest extends ServiceTestClass<MyServiceTestWrapper>{
public void test_myTest(){
Logger fakeLogger = Mockito.Mock(Logger.class);
// HERE IM NOT SURE HOW TO CONTINUE...
//...
//...
Mockito.verify(fakeLogger.write(Mockito.any(String.class))).times(3);
}
}
如何获取服务实例并对onStartCommand进行3次调用?
感谢您的帮助
答案 0 :(得分:0)
每次调用startService(即使它已在运行),都会调用onStartCommand
。
所以,要调用它3次,你可以简单地写一下:
Intent serviceIntent = new Intent(MainActivity.this, MySerivce.class);
for (int x = 0; x < 3; x++) {
startService(serviceIntent);
}
来源:Android文档(如下所示)
请注意,对Context.startService()的多次调用不会嵌套(尽管它们会导致对onStartCommand()的多次相应调用)