最近、AndroidアプリのテストにUIautomatorを使い始めました。
次のコードフラグメントは、テストケースのコード内の一般的なステートメントを示しています。
mDevice.findObject(By.res(BASIC_SAMPLE_PACKAGE, "editTextUserInput"))
.setText(STRING_TO_BE_TYPED);
ご覧のとおり、「editTExtUserInput」は文字列として参照されています。私のアプリケーションのソースコードでは、これはリソース識別子(R.id.editTextUserInput)として定義されています。
現在の状況では、アプリで識別子の名前を変更すると、すべてのテストケースが台無しになります(すべての文字列値を手動で変更する必要があります)...この問題の解決策はありますか?
GoogleのAndroidテストチームの多くは、これらのケースを特に簡単にする新しいUIテストフレームワークであるEspressoの構築に時間を費やしてきました。たとえば、次のようになります。
onView(withId(R.id.editTextUserInput)).typeText(STRING_TO_BE_TYPED);
また、識別子のオートコンプリートやリファクタリングなどもこれらのテストに影響します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加