咖啡读字符串文件值

问题描述 投票:7回答:2

我想保持一个斯汀和原始文件在我androidTest模块,需要在咖啡测试时,读取它。

我把res文件夹下androidTest并能够同步和生成相同的R档。但是,当我尝试使用访问字符串资源

getTargetContext.getString(R.string.product_name)或使用mAcitivityRule.getActivity.getString(R.string.product_name)I我得到它甚至没有在资源文件的任何地方使用的一些随机值。

String output: "res/drawable-v21/abc_action_bar_item_background_material.xml"

有没有什么办法可以保持在我的项目测试模块使用字符串资源,也不会添加到我的生产版本。

android android-espresso
2个回答
13
投票

您应该改用InstrumentationRegistry.getContext() InstrumentationRegistry.getTargetContext(),然后用适当的包生成的R文件(默认情况下它会追加.test你的包):

Resources resources = InstrumentationRegistry.getContext().getResources();
String name = resources.getString(com.your_package.test.R.string.product_name);

注意test在资源名称的一部分。


1
投票

在2019年,我们应该做什么?(科特林)。

val resources = ApplicationProvider.getApplicationContext<App>().resources

val description = resources.getString(DESCRIPTION)
© www.soinside.com 2019 - 2024. All rights reserved.