如何与Robolectric一起使用Mocking(Mockito)可以建议我,我也想为API调用编写单元测试用例,我尝试使用Robolectric,但它仅运行标签和操作,但对于API调用如何用Android测试包编写单元测试,请帮帮我
答案 0 :(得分:2)
据我所知,您不会将Mockito与Robolectric结合使用。
您使用Robolectric是为了不必在模拟器或物理设备上测试仪器测试,而是在 JVM 上对其进行测试。那是Robolectric。这样还可以访问android框架,而且速度较慢。
Mockito是一个库,可让您在单元测试内:mock:您的依赖项。单元测试的目的是测试您想要测试的特定软件实体的行为,尤其是其逻辑。由于它无法访问android框架(不需要),因此速度更快。
编辑:
实际上更复杂。您可以将Robolectric与Mockito一起使用(通过将Mockito规则作为Runner引入-您有2个赛跑者,一个@RunWith(AndroidJunit4)-robolectric,一个MockitoRule)。而且,您可以仅通过Robolectric对需要访问android SDK的东西进行单元测试,而无需实际开始任何活动。因此,这些是我可以在Android上提出的测试配置:
(/ test)简单的JUnit
(/ test) JUnit + Mockito -设计模式中的经典单元测试
(/ test)没有开始活动的AndroidJUnit(Robolectric)+ Mockito -既需要android sdk实例又需要模拟的单元测试
(/ test)** AndroidJUnit(Robolectric)-开始活动,您使用浓缩咖啡测试UI
或者您也可以使用sharedTest。两者都只有一个文件夹。这样,您也许可以选择在设备和VM上运行一项测试,但我不确定如何进行。也许氮气会在将来引入此选项。 https://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/
如今,您可以为特定课程设置测试环境的方法很多。我希望氮气项目能够简化决策过程,并为此提供良好的文档。