如果有人建议我编写API调用的单元测试用例,我也尝试使用Robolectric,但是它只运行标签和操作,但是对于API调用中如何编写单元测试,请帮助我。
发布于 2018-11-14 16:43:24
就我所理解的Android测试而言,你不会把Mockito和Robolectric结合在一起。
为了不需要在模拟器或物理设备上测试您的仪器化测试,您可以使用Robolectric进行测试,而是在JVM上进行测试。那是罗波利克。这也允许您访问android框架,而且速度更慢。
另一方面,Mockito是一个库,允许您模拟:单元测试中的依赖项。单元测试的目的是测试您希望测试的特定软件实体的行为,具体而言是它的逻辑。因为它不能访问android框架(它不需要),所以它的速度要快得多。
编辑:
其实更复杂。您可以将Robolectric与Mockito一起使用(通过引入Mockito规则作为Runner --您有2名跑步者,一名@RunWith(AndroidJunit4) - MockitoRule)。你只需单元测试一些需要使用Robolectric访问android的东西,而不需要实际启动一个活动.因此,这些是我可以在Android上提出的测试配置:
1. (/instrumentedTest) **AndroidJUnit** - the same thing, test ui with espresso
或者你也可以拥有sharedTest。两个都只有一个文件夹。有了这个选项,您就可以在设备上和VM上运行一个测试,我只是不确定如何运行。也许氮气会在未来引入这一选择。https://blog.danlew.net/2015/11/02/sharing-code-between-unit-tests-and-instrumentation-tests-on-android/
现在,您可以为特定类设置测试环境的方法很多。我希望氮气项目将简化这一决策,并就此提供一个良好的文件。
编辑
事实上,我写这篇评论的时候是错的。您可以在频域测试中模拟依赖项。您可以通过依赖注入(Koin,Dagger 2)和使用相同的抽象创建不同的依赖关系图来实现这一点。(复杂,看看在一些博客里.在这里不会详细说明)
https://stackoverflow.com/questions/52474455
复制相似问题