使用Android + Gradle的InstrumentTest资源

时间:2013-11-21 21:09:12

标签: android intellij-idea android-resources android-gradle

我需要测试一个自定义适配器,它使用TypedArray来创建数据。我想为它编写一个仪器测试(即AndroidTestCase),当然需要它自己的测试资源。

使用以下结构设置instrumentTest子文件夹后:

/ instrumentTest
  - src
  / res
    - drawable
    - layout
      # layouts for the tests
    - values
      # resource values where the TypedArray exists

最初Android Studio(IntelliJ IDEA 13)无法识别R引用(在PACKAGE_NAME.test.R下,但在我运行assembleTest后,它们会被识别出来。当我执行connectedInstrumentTest由于此错误,测试失败:

android.content.res.Resources$NotFoundException: Array resource ID #0x7f040000
    at android.content.res.Resources.obtainTypedArray(Resources.java:509)

它失败的资源位于PACKAGE_NAME.test.R下。

帮助?

1 个答案:

答案 0 :(得分:0)

问题出在AndroidTestCase。它提供的上下文似乎并不实际可用。更改为InstrumentationTestCase并从

获取资源
getInstrumentation().getContext().getResources()

似乎工作正常。