使用Robotium .getString()方法从R.string返回错误

时间:2013-01-15 14:32:09

标签: android robotium

我尝试使用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返回不正确的值?

2 个答案:

答案 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 );

应该可以正常工作。