ИНТЕРВЬЮ

Тестирование, тестирование

Шесть вопросов Эдду Йербургу, автору книги Тестирование приложений Vue.js

Эдд Йербург — разработчик JavaScript и член основной команды Vue. Он является основным автором библиотеки Vue Test Utils и увлечен инструментами с открытым исходным кодом для тестирования приложений на основе компонентов. В настоящее время он работает инженером-программистом на BBC в Лондоне.

__________________________________________________________________

Получите скидку 39% на Тестирование приложений Vue.js. Просто введите intyerburgh в поле с кодом скидки при оформлении заказа на manning.com.
_______________________________________________________________________

Под тестированием мы подразумеваем подход к разработке через тестирование (TDD)? Или вы используете тесты другими способами?

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

Есть ли что-нибудь в Vue.js, что делает его особенно подходящим для подхода TDD?

Интерфейсные приложения на основе компонентов упрощают тестирование по сравнению с неструктурированными приложениями jQuery, существовавшими до них, поскольку компоненты являются естественными единицами. Но TDD не так хорошо подходит для интерфейсных приложений, как для библиотек или внутренних приложений с четко определенным API.

Можно ли применить тесты и подходы к тестированию, о которых вы рассказываете в своей книге, на другом языке?

Да, на высоком уровне, но код специфичен для JavaScript. Это может быть полезно разработчикам React или другим разработчикам JavaScript, пишущим приложения на основе компонентов. Я бы не рекомендовал его тем, кто не знает JavaScript.

Тесты — не панацея, верно? Когда мы не хотели бы их использовать?

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

У интерфейсных тестов также есть проблема, заключающаяся в том, что они могут быть хрупкими. Они используют API-интерфейсы браузера, которые требуют имитации, и иногда тесты должны проверять вывод компонента, полагаясь на атрибут элемента DOM, который может измениться, не нарушая тестируемую функциональность. Это удорожает тесты. Так что это компромисс, на который вы должны пойти как разработчик. Обычно я пишу тесты для больших приложений с несколькими разработчиками, работающими над ними, потому что я считаю, что стоимость написания и поддержки тестов перевешивается преимуществом наличия хорошего набора тестов.

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

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

Я слышал, недавно вы достигли цели: прочитали 52 книги за год. Какие из них вам больше всего понравились?

Сначала я не собирался читать 52 книги, но в марте я заметил, что с начала года прочитывал больше одной книги в неделю. Мне нравятся научно-фантастические, технические и научно-популярные книги, поэтому моими любимыми книгами были: Into Thin Air, Game Programming Patterns и House of Suns. Into Thin Air — это рассказ из первых рук о неудачной попытке восхождения на Эверест. Это познавательно, вдохновляюще и ужасно грустно. Шаблоны игрового программирования объясняют такие шаблоны, как байтовый код, шаблон синглтона и шаблон прототипа, на простых примерах. У автора хорошее чувство юмора, и я нашел его легко читаемым и информативным. Дом Солнц — это отдельная научно-фантастическая эпопея о вселенной, населенной роботами, пост-людьми и клонами с бесконечно большой продолжительностью жизни. Построение мира в этой книге феноменально, а история захватывает.

Первоначально опубликовано на https://freecontent.manning.com.