Эспрессо Лучшая архитектура кода

Я хочу запустить контрольно-измерительный прибор Espresso для своего приложения. Тест содержит навигацию к нескольким действиям и взаимодействия с несколькими виджетами.

Каков наилучший из возможных стилей кодирования, которым я должен следовать, чтобы код был понятным и понятным?

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

@Test
public void validateUserNavigationScenario() {
    // Create a bitmap we can use for our simulated camera image
    SignOnActivity.validateLogin();

    ProductSelector.selectProduct();

    ProductDetail.showProductDetails();

    ProductDetail.addProductToCart();

    pressBack();

    ProductSelector.selectProduct();

    // ... additional test steps and validation ...
}

1 ответ

Код тестового кода не отличается от кода производственного кода.

Те же самые хорошие шаблоны и привычки, используемые для производственного кода, должны присутствовать в тестируемом коде. Использование статической ссылки в качестве основного подхода к структурированию всех ваших костюмов кажется мне плохим решением.

Вы должны проверить это выступление Джейка Уортона о том, как структурировать ваш тестовый код.

Роботы для тестирования приборов

Основное внимание уделяется разработке Kotlin, но те же принципы применимы и к Java. Чтобы подвести итог, он утверждает, что вы должны скрыть свои внутренние детали внутри какого-то "шаблона" робота. Это означает, что вы должны стараться быть настолько семантическими, насколько это возможно, с вашим разоблачающим API, чтобы создавать читаемые и поддерживаемые тесты.

Подумайте в своем тесте, как если бы они использовались для других разработчиков, а затем подумайте, что вы один из них. Как вы хотите, чтобы они их использовали?

Другие вопросы по тегам