现在还没有发现Roboletric的更多作用,将已发现的有用的tip记录下来。
第一步是引入Roboletric的Jar依赖
testImplementation 'org.robolectric:robolectric:3.4'
我使用的是3.4版本,有一点旧,但可以正常的使用。
接下来要在需要使用Roboleteic的测试类中书写一些必要的东西。
第二步指定RobolectricTestRunner为执行器
@RunWith(RobolectricTestRunner.class)
这个时候,理论上就可以正常的使用Roboletric了,跑一下。
`java.lang.UnsupportedOperationException: Robolectric does not support API level 28.
报错了,提示我们Roboletric不支持28的JDK(后面发现其实高版本的Roboletric可以支持到更高的JDK,但是不清楚支持28的需要什么版本)
然后我用了Roboletric的@Config,可以为代码块设置特定的JDK版本,可以写在整个类之前,控制整个类的版本,也可以写在某个方法之前。
@Config(sdk = 18)
再跑一下,成功了。
在Junit脱离Andorid的环境中,是没法使用Context的,这个时候如果一定要用,就要模拟一个出来。
Context mContext = RuntimeEnv