Эспрессо Лучшая архитектура кода
Я хочу запустить контрольно-измерительный прибор 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, чтобы создавать читаемые и поддерживаемые тесты.
Подумайте в своем тесте, как если бы они использовались для других разработчиков, а затем подумайте, что вы один из них. Как вы хотите, чтобы они их использовали?