需要带有Mockito的Robolectric示例来编写单元测试用例

时间:2018-09-24 07:24:54

标签: android unit-testing automated-tests mockito robolectric

如何与Robolectric一起使用Mocking(Mockito)可以建议我,我也想为API调用编写单元测试用例,我尝试使用Robolectric,但它仅运行标签和操作,但对于API调用如何用Android测试包编写单元测试,请帮帮我

1 个答案:

答案 0 :(得分:2)

据我所知,您不会将Mockito与Robolectric结合使用。

您使用Robolectric是为了不必在模拟器或物理设备上测试仪器测试,而是在 JVM 上对其进行测试。那是Robolectric。这样还可以访问android框架,而且速度较慢。

Mockito是一个库,可让您在单元测试内:mock:您的依赖项。单元测试的目的是测试您想要测试的特定软件实体的行为,尤其是其逻辑。由于它无法访问android框架(不需要),因此速度更快。

编辑:

实际上更复杂。您可以将Robolectric与Mockito一起使用(通过将Mockito规则作为Runner引入-您有2个赛跑者,一个@RunWith(AndroidJunit4)-robolectric,一个MockitoRule)。而且,您可以仅通过Robolectric对需要访问android SDK的东西进行单元测试,而无需实际开始任何活动。因此,这些是我可以在Android上提出的测试配置:

  1. (/ test)简单的JUnit

  2. (/ test) JUnit + Mockito -设计模式中的经典单元测试

  3. (/ test)没有开始活动的AndroidJUnit(Robolectric)+ Mockito -既需要android sdk实例又需要模拟的单元测试

  4. (/ test)** AndroidJUnit(Robolectric)-开始活动,您使用浓缩咖啡测试UI

    1. (/ instrumentedTest) AndroidJUnit -同样,用espresso测试ui

或者您也可以使用sharedTest。两者都只有一个文件夹。这样,您也许可以选择在设备和VM上运行一项测试,但我不确定如何进行。也许氮气会在将来引入此选项。 https://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/

如今,您可以为特定课程设置测试环境的方法很多。我希望氮气项目能够简化决策过程,并为此提供良好的文档。