单元测试ArrayMap抛出android.util.ArrayMap中放入的方法没有被模拟

时间:2017-07-16 02:51:29

标签: java android unit-testing

我正在尝试对使用数组映射的方法进行单元测试,并且我一直得到以下异常:

java.lang.RuntimeException: Method put in android.util.ArrayMap not mocked. See http://g.co/androidstudio/not-mocked for details.

代码:

  ArrayMap<String, String> sampleMap =new ArrayMap<>();
                            for (SampleInfo info : details.getSampleList())
                            {
                                sampleMap.put(info.getkey(),info.getName());
                            }

我试过了:

testOptions {
        unitTests.returnDefaultValues = true
    }

这样可以避免异常,但地图始终为空。如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

为我工作,确保它在build.gradle的正确部分

android {

  ...

  testOptions { 
     unitTests.returnDefaultValues = true
  }
}

答案 1 :(得分:0)

正如@ShadowFlame在上述评论中所述 我使用了数组映射支持“ androidx.collection.ArrayMap”,而不是“ android.util.ArrayMap” 而且效果很好。

答案 2 :(得分:-1)

你可以尝试,因为它是使用键值/对

的ArrayMap
        ArrayList<ArrayMap<String, String>> listArray2 = new ArrayList<>();
        for (SampleInfo info1 : details.getSampleList())
        {
            sampleMap.put("keyname",info1.getName());

            listArray2.add(sampleMap);

        }
        Log.e("****sadflkj **",listArray2.toString());