Android单元测试:访问测试应用程序的清单

时间:2014-10-15 16:21:00

标签: android android-manifest android-gradle android-testing

我的Android库项目中有一个Android单元测试,它从清单中读取元数据(元数据)。我想用测试元数据填充我的测试应用程序的清单。

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.foo.bar">

  <application>
    <meta-data
        android:value="com.foo.bar.dbnames" android:resource="@array/dbnames"/>
  </application>
</manifest>

但是,我发现当我在测试用例实现中获取包管理器时,它正在访问我的Android库项目的清单,而不是测试应用程序。

有没有办法强制测试用例运行指向测试应用程序的清单? 感谢。

1 个答案:

答案 0 :(得分:1)

您需要做的就是为您的测试用例类扩展ApplicationTestCase<Application>

您可以在测试用例中调用getContext(),并在其中包含相应的信息。

PackageManager pm = getContext().getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA);