Знаешь, почему автоматизаторы пишут миллионы selenium-тестов? Потому что по-другому фронтенд не протестировать. По крайней мере так было раньше. Ни о какой модульности в вёрстке не было и речи, а каждая страница представляла собой простыню js-кода вперемешку с html. Всё равно что писать серверный код на ассемблере.
Для меня всё изменилось, когда в Яндексе стали верстать по BEM. Идея Абсолютно Независимых Блоков (АНБ), инкапсуляция работы с DOM-деревом + набор инструментов для работы с этим всем. Модульность во всей своей красе. А если есть модульность - пиши модульные тесты.
Каждый блок - отдельная сущность. Каждый блок в отдельности ведёт себя точно так же, как собранные вместе на странице. Каждый блок можно протестировать отдельно, в изоляции. Его можно наполнить тестовыми данными и получить нужное состояние парой строчек кода. Больше не нужны полтора десятка “пользовательских шагов” для подготовки теста. Не нужен бэкенд, не нужна тестовая база и прочая инфраструктура.
Может и selenium больше не нужен? Тихо-тихо, нужен :). Selenium grid очень удачно вписался в инфраструктуру модульного тестирования фронтенда - он предоставлет единую точку для получения браузеров. А браузеры - это то, что нужно для выполнения фронтового кода ).
Нужны ли при таком подходе привычные браузерные тесты? Возможно, но только не для тестирование фронтенда. Для чего тогда? Этот вопрос пока для меня открыт.
comments powered by Disqus