【问题标题】:Android unit test: access manifest of test applicationAndroid单元测试:测试应用的访问清单
【发布时间】:2014-12-10 19:32:29
【问题描述】:

我的 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 库项目的清单,而不是测试应用程序。

有没有办法强制测试用例运行指向测试应用的清单?

【问题讨论】:

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


    【解决方案1】:

    您需要做的就是为您的测试用例类扩展ApplicationTestCase&lt;Application&gt;。

    您可以在您的测试用例中调用getContext(),其中将包含适当的信息。

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

    【讨论】:

    • 这不是真的。该上下文是正在测试的应用程序的上下文,而不是测试应用程序本身。我想要测试 APK 的上下文。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2013-07-04
    • 2011-09-12
    • 2013-07-04
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多