我有一个应用程序,它有一些相互通信的服务。所有这些都在一个进程中工作,因此它们不需要Messenger。在应用程序运行时,我的主服务连接到其他服务并将服务作为依赖项注入。例如,ImportService需要ParserService来执行某些操作,因此ImportService具有方法setParserService(ParserService服务);
它在实际操作中工作正常但我无法对需要依赖的服务运行测试,因为ServiceTestCase.bindService()只知道如何启动/绑定它实际测试的服务。它无法启动/绑定我需要的其他服务作为依赖项。它在我尝试获取其他服务时进行编译,但在尝试调用bindService()时崩溃。
我已经google了很多,但现在我只能看到三种解决方法:
所以,简而言之,问题是:我可以使用ServiceTestCase绑定测试中的一个特定服务。但是如何在一次测试中绑定2个,10个或更多服务?
答案 0 :(得分:0)
ServiceTestCase 提供了一个框架,您可以在受控环境中测试Service类。它为 a [single] Service 的生命周期提供基本支持,以及可以注入各种依赖项并控制测试服务的环境的钩子。
如果您正在执行各种服务的集成测试,则应使用它们作为活动或应用程序的一部分进行测试。