2015-06-26 2 views
3

Недавно я начал использовать UIautomator для тестирования своих приложений для Android.Каков наилучший способ ссылки на идентификаторы ресурсов в тестах UIAutomator?

Следующий фрагмент кода показывает типичное заявление в коде тестовых случаев:

mDevice.findObject(By.res(BASIC_SAMPLE_PACKAGE, "editTextUserInput")) 
       .setText(STRING_TO_BE_TYPED); 

Как вы можете видеть, «editTExtUserInput» ссылается как строка. В исходном коде моих приложений это определяется как идентификатор ресурса (R.id.editTextUserInput).

В текущей ситуации, когда я изменю имя идентификатора в своем приложении, все мои тестовые примеры будут перепутаны (мне придется вручную изменять все строковые значения) ... У кого-нибудь есть решение для этого вопроса?

+1

Вы задумывались над переключением на [Espresso] (https://developer.android.com/training/testing/ui-testing/espresso-testing.html)? С ним гораздо проще работать, чем с UIAutomator для тестирования пользовательского интерфейса для одного приложения. – ianhanniballake

+0

Спасибо, я рассмотрю структуру Espresso. С первых взглядов это действительно лучший подход для моих тестов. – Peter

ответ

-1

Большая часть команды Google по тестированию Google проводит временное построение Espresso, новую платформу тестирования пользовательского интерфейса, которая специально упрощает эти случаи. Например, линия может быть

onView(withId(R.id.editTextUserInput)).typeText(STRING_TO_BE_TYPED); 

И такие вещи, как идентификатор автозаполнения и рефакторинга также влияет на эти тесты.

+0

Это не отвечает на вопрос. Иногда использовать Espresso невозможно, и нам все еще нужно полагаться на UiAutomator. Я надеюсь, что кто-то там может это понять – gorbysbm

+0

Espresso не работает для всех случаев. Это вопрос, связанный с UiAutomator. –

+0

@ sid_09 - нет, этот вопрос касается тестирования строки в вашем собственном интерфейсе, что, безусловно, что-то, что вы должны делать с эспрессо. Если бы вопрос касался чего-то, что требовало UIAutomator (например, тесты интеграции с интеграцией приложений), тогда это был бы другой вопрос и другой ответ. – ianhanniballake