坑
2017-06-07 本文已影响54人
岛在深海处
1.当使用Mockito.verify(mock).performLogin("chenyou", anyString());这个语句时报如下错误,正确的做法是
Mockito.verify(mock).performLogin(eq("chenyou"),anyString());当使用匹配器时,所有参数必须由匹配器提供。
![](https://img.haomeiwen.com/i2537044/485c25b2dc1c2243.png)
2.当出现如下错误的时候有两种情况:一种是在该方法内调用mock对象方法之前已经return了,一种是mock对象没有替换掉正式代码里的对象
![](https://img.haomeiwen.com/i2537044/154f79f89267aa7d.png)
3.神坑:Robolectric配置问题
- 神坑1:编译不通过,编译冲突
Error:Conflict with dependency 'com.google.guava:guava' in project ':app'. Resolved versions for app (18.0) and test app (20.0) differ. See http://g.co/androidstudio/app-test-app-conflict for details.
编译冲突问题
解决办法:
testCompile('org.robolectric:robolectric:3.3.2', {
exclude group: 'com.google.guava', module: 'guava'
})
编译冲突解决办法
神坑2:
![](https://img.haomeiwen.com/i2537044/c0588b874557ef96.png)
- 出现如上No such manifest file: build\intermediates\bundles\debug\AndroidManifest.xml的办法如下:
第一步:
![](https://img.haomeiwen.com/i2537044/d71d1722e14fa31c.png)
第二步:
![](https://img.haomeiwen.com/i2537044/90e305d2b3f8f5e7.png)
如果步骤2没有自动设置这个的话,这个也需要手动设置
![](https://img.haomeiwen.com/i2537044/e9bd4ddf4c67b56f.png)
- 第二个神坑级Robolectric配置问题
![](https://img.haomeiwen.com/i2537044/e76c69d6c89290c7.png)
解决办法:添加@Config(constants = BuildConfig.class) 如下图:
![](https://img.haomeiwen.com/i2537044/6989a5db3c9936bd.png)
4.java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details.
![](https://img.haomeiwen.com/i2537044/df605adc8649ce1a.png)
这个问题有点奇怪,这个测试类中我并没有用到Robolectric和Mock但是运行时报错了,解决方式是在类名前面添加这两行代码
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class)