Я не уверен, что этот вопрос относится к SO, потому что он может быть широким, но я не знаю, где его спросить (я не нашел лучшего сайта для стека).Как сгенерировать тесты пользовательского интерфейса из dsl?
Контекст
Я использую UiAutomator написать некоторый тест Ui на андроид. Я создал несколько функций для упрощения записи результатов испытаний, как один в доке
public void startMainActivityFromHomeScreen() {
/*Start the app from the home screen*/
}
В качестве developper, это работает отлично. Но нетехнические народы (подрядчик) не могут легко использовать эти функции для написания тестов.
ПотребностьЯ ищу способ для нетехнических пользователей, чтобы написать несколько сценариев с использованием функции я уже определен. Вот фиктивный пример (как формат и действия сценария)
Suite: Launch the app twice from the home screen
Case: Launch the app for the first time
Do startMainActivityFromHomeScreen
Expect ...
Case: Launch the app for the second time
Do startMainActivityFromHomeScreen
Expect ...
Важным моментом здесь является взаимодействие с функциями Java. Я знаю другие инструменты, такие как calabash, но он не предоставляет java-интерфейсов.
Текущий подход
Вот идея (ничего не реализовано)
- Поместите все функции в Lib
- Написать заводной DSL (потому что заводной хорошо взаимодействуют с Java), который позволяет нетехнических пользователи, чтобы легко писать сценарии
- Создайте Java-программу, которая будет оценивать groovy-скрипт и генерировать связанный источник кода Android (с помощью lib (from (1)) в качестве зависимости от градиента).
- Run
gradle androidTestCompile
Поскольку функции в Lib, разработчики могут легко включать и использовать его в своих проектах. Таким образом, одна и та же lib может использоваться для всех пользователей.
Ненавижу эту идею, так как я должен генерировать код из моего кода, но это единственный, который у меня есть.
Вопросы
- Является ли этот подход, как ужасно, как я думаю, что это?
- Вы знаете другой способ сделать это?