Я пишу локальные тестовые случаи для моего приложения для Android.
В одном из тестовых случаев мне нужно прочитать содержимое метаданных, определенных в AndroidManifest.xml
Я легко могу прочитать данные, вызвав эти методы - metadata.getString () / metadata.getBoolean ()
во время работы приложения
Я не могу получить доступ к тому же в модульном тестировании.
значения всех ключей, определенных в maifest, здесь равны нулю.
В приведенном ниже коде объект ai создан правильно,
Res является нулем,
aM - ноль,
метаданные не являются нулевыми и имеют значения для hub_url, enable_transmission и аутентификации, как определено в файле манифеста.
Странно, что когда я пытаюсь получить доступ к содержимому метаданных в переменных a, b и c, все они равны нулю
val context = ApplicationProvider.getApplicationContext<Context>()
val ai = context!!.packageManager.getApplicationInfo( context.packageName, PackageManager.GET_META_DATA)
val res = ai.metaData.getBoolean( context.getString(R.string.enable_transmission))
val aM = ai.metaData.get( context.getString(R.string.enable_transmission))
val metadata = ai.metaData!!;
val a = metadata.getString(context.getString(R.string.hub_url))
val b = metadata.get(context.getString(R.string.enable_transmission));
val c = metadata.get(context.getString(R.string.authentication));
Вот содержимое файла манифеста
<application>
<meta-data
android:resource="@string/basic"
android:name="@string/authentication"
android:value="@string/basic" />
<meta-data
android:resource="@string/hub_url"
android:name="@string/hub_url"
android:value="@string/hub_url" />
<meta-data
android:resource="@bool/enable"
android:name="@string/enable_transmission"
android:value="@bool/enable" />
</application>