我尝试使用Robotium从R.string获取Android设置
String loginButton = solo.getString(test_project_package.R.string.login_button);
string.xml文件包含(位于测试项目中):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="login_button">Sign In to App.</string>
</resources>
问题在于返回值。而不是“登录到应用程序”,Java返回“res / layout / bottom.xml”。它似乎是来自app源代码的路径。那是在同一个工作区内。)
我尽量不使用独奏:
Resources resources = getInstrumentation().getTargetContext().getResources();
String loginButton = res.getString(test_project_package.R.string.login_button);
同样的问题。
有什么问题?为什么Java返回不正确的值?
答案 0 :(得分:1)
部分解决了这个问题:)
在测试项目中添加以下导入:
import project_package.R;
之后可以使用源代码中的设置。 Java返回正确的参数。
solo.clickOnButton(solo.getString(R.string.add_account_button));
但是!如果你想从测试项目中获取参数并像这样设置导入:
import project_package.test.R;
或者只是没有导入Java将返回错误的参数。不知道为什么
我在文章Android Testing with the Android Test framework, Robotium, Monkey and Robolectric
中找到了这个提示答案 1 :(得分:0)
我认为solo.getString()
不是从String.xml获取字符串
它是在当前活动中获取与视图相关联的字符串。
要从String.xml获取字符串,请使用以下命令:
solo.getContext().getString( resId );
在你的情况下 -
solo.getContext().getString( R.string.login_button );
应该可以正常工作。