android studio测试框架说明

https://developer.android.google.cn/training/testing/unit-testing/local-unit-tests

上面是文档

本地测试:::
Junit是单元测试框架,
Mockito和Robolectric都是用来产生模拟对象的,

Mockito在Java中用的多,PowerMockito是Mockito的增强版可以模拟final,static,private等Mockito不能mock的方法,
Robolectric可以模拟更多的Andorid框架中的对象。

如果要构建的本地单元测试对Android框架依赖小,可以选择mockito,速度更快。
如果要构建的本地单元测试对Android框架有很大的依赖性,可以选择Robolectric

插桩测试(带界面的测试):::

在Android设备或者模拟器上运行的测试,这些测试可以访问插桩测试信息,比如被测设备的Context,使用此方法可以运行具有

复杂Android依赖的单元测试。前两篇中的Espresso 和
UI Automator就是这类测试,Espresso一般用来测试单个界面,UI Automator一般用来测试多界面交互。它们运行的比本地测试
慢很多,所以谷歌建议最好是必须针对设备测试的时候才使用。


spy对象的方法默认调用真实的逻辑,
mock对象的方法默认什么都不做,或直接返回默认值。


Mockito和PowerMockito都直接运行在JVM上,JVM上没有Android源码相关的实现,那么在做有Adroid相关的依赖的测试的时候,
就会报错,这时候就要用到Robolectric啦,当我们去
调用android相关的代码的时候,它会拦截并去执行自己对相关代码的实现。

2.mockk只能测试直接返回的方法,无法测试异步返回后,mvvm类的方法,或者LiveData回调的方法
3.Rxjava有支持mockkit的方法,不使用rxjava的要另外支持测试

原文地址:https://www.cnblogs.com/caosq/p/15529341.html