4

テストにロボティウムを使用していますが、テキストのないボタンをクリックする方法がわかりません。テストはトレースで失敗します:

junit.framework.AssertionFailedError: インデックス 2131034130 のボタンは使用できません!

4

2 に答える 2

13

インデックスシステムはブラックボックステストの理由で存在します。したがって、クリックするビューのリソースIDがわかっている場合solo.getView(R.id)は、オブジェクトを取得してsolo.clickOnView(View view)からクリックするために使用できます。

于 2012-10-07T18:01:42.833 に答える
1

実際のメソッド パラメータは ID ではなく「インデックス」であることがわかりました。だから私の回避策は次のとおりです。

private void clickOnButtonByID(int ID) {
    // get a list of all ImageButtons on the current activity
    List<Button> btnList = solo.getCurrentButtons();
    for (int i = 0; i < btnList.size(); i++) {
        Button btn = btnList.get(i);
        // find button by id
        if (btn.getId() == ID) {
            // click on the button using index (not id !!!)
            solo.clickOnButton(i);
            // check if new activity is the 'About'
        } else {
            // other code
        }
    }
}
于 2012-10-06T10:43:55.317 に答える