テストにロボティウムを使用していますが、テキストのないボタンをクリックする方法がわかりません。テストはトレースで失敗します:
junit.framework.AssertionFailedError: インデックス 2131034130 のボタンは使用できません!
インデックスシステムはブラックボックステストの理由で存在します。したがって、クリックするビューのリソースIDがわかっている場合solo.getView(R.id)
は、オブジェクトを取得してsolo.clickOnView(View view)
からクリックするために使用できます。
実際のメソッド パラメータは 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
}
}
}