1

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」を返します。アプリのソースコードからのパスのようです。同じワークスペースにあります)。

私はソロを使わないようにしました:

Resources resources = getInstrumentation().getTargetContext().getResources();
String loginButton = res.getString(test_project_package.R.string.login_button);

同じ問題。

なにが問題ですか?Javaが誤った値を返すのはなぜですか?

4

2 に答える 2

1

この問題を部分的に解決しました:)

テスト プロジェクトに次のインポートを追加します。

import project_package.R;

その後、ソースコードから設定を使用することができます。Java は正しいパラメータを返します。

solo.clickOnButton(solo.getString(R.string.add_account_button));

しかし!テスト プロジェクトからパラメーターを取得し、インポートを次のように設定する場合:

import project_package.test.R;

または、Javaをインポートしないと、間違ったパラメーターが返されます。理由がわからない

このヒントは、Android テスト フレームワーク、Robotium、Monkey、Robolectric を使用した記事 Android Testing で見つけました。

于 2013-01-16T06:55:51.133 に答える
0

solo.getString()String.xml から文字列を取得するのではなく、現在のアクティビティのビューに関連付けられている文字列を取得することだと思います。

String.xml から文字列を取得するには、次を使用します。

solo.getContext().getString( resId );

あなたの場合 -

solo.getContext().getString( R.string.login_button );

正常に動作するはずです。

于 2013-10-22T11:23:35.827 に答える