我的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库项目的清单,而不是测试应用程序。
有没有办法强制测试用例运行指向测试应用程序的清单? 感谢。
答案 0 :(得分:1)
您需要做的就是为您的测试用例类扩展ApplicationTestCase<Application>
。
您可以在测试用例中调用getContext()
,并在其中包含相应的信息。
PackageManager pm = getContext().getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA);