История тестирования в Ember очень преуменьшена. Ember создал средство тестирования, которому позавидовал бы любой другой язык / фреймворк. После многолетнего консультирования я могу сказать, что мало что может быть важнее, чем наличие надежного набора тестов .
- Джонатан Джексон, Запись в блоге для амбициозной концепции

Привет, я Бенджамин, инженер компании Перси, работающий с Эмбер. Я написал эту статью в ответ на Roadmap RFC от ​​Team Ember, чтобы предложить цели и направления для Ember на оставшуюся часть 2018 года. Моя команда и я любим тесты всех видов. Для меня тестирование было основной частью моего опыта работы с Ember. Я хочу, чтобы больше людей открыли для себя, что тестирование в Ember - это круто, и увидеть, как Ember растет, чтобы приспособиться к большему количеству стилей тестирования. Я думаю, что опыту тестирования не уделяется достаточно внимания в наших обсуждениях веб-фреймворков, и хотелось бы увидеть это изменение.

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

Тестировать JavaScript не всегда просто. Убедить других написать и поддерживать тесты - не всегда весело. Я потратил много времени, объясняя другим разработчикам, что они должны писать тесты, или больше тестов, или лучшие тесты. Как только мы с этим согласимся, становится непросто решить, какие библиотеки тестирования использовать, интегрировать их в сборку и определить общие стратегии тестирования, которые следует использовать. Ember (по стопам Ruby on Rails) многое из этого делает за вас, устанавливая соглашения и структуры тестирования из коробки. Если вы не знаете, где проводить тесты или как их проводить, вуаля! об этом позаботились, и вы можете просто заполнить пробелы. Это огромная победа для холодных команд, когда дело доходит до тестирования приложения. По моему опыту, переход от нулевых тестов к нескольким простым тестам является большим концептуальным препятствием для людей, которым не хватает опыта в тестировании. Гораздо проще и быстрее взглянуть на стандартные тесты Ember, а затем так же построить другие.

Эти правила подходят не всем. В 2018 году и позже Ember необходимо найти баланс между соглашением и конфигурацией, чтобы выбор между несколькими популярными библиотеками был хорошим опытом. Не все хотят использовать QUnit. Я предпочитаю Мокко или Шутку. Хотя заменить QUnit на Mocha в приложении ember было довольно просто, поддержка Mocha часто отстает, а поддержка Jest отсутствует. Мы должны поддерживать QUnit, Mocha и Jest так же, как мы поддерживаем CSS, LESS и Sass. Другие сообщения в этой серии подчеркнули необходимость аналогичного улучшения поддержки TypeScript. Значения по умолчанию и соглашения действительно полезны, но я думаю, разработчикам будет проще их изменить. Люди, знакомые с другими способами написания тестов, могут быть быстро отключены или сбиты с толку при попытке перенастроить Ember для тестирования в том стиле, который они предпочитают.

Мне бы хотелось, чтобы более тесная интеграция тестов визуальной интеграции с Ember стала одним из основных методов тестирования приложений Ember.
- Эндрю Каллахан, Дорога к Ember 4.0

Способы тестирования приложений постоянно развиваются. У Ember отличные возможности, чтобы продолжить эту эволюцию. Создание Перси (и использование Перси для создания Перси) открыло мне глаза на возможности визуального регрессионного тестирования. У Перси отличная поддержка Ember, а сам веб-клиент Перси написан на Ember. Визуальное тестирование - это сдвиг парадигмы, поскольку он фиксирует изменения пикселей без необходимости вручную писать тест. Генеративное тестирование могло бы стать еще одним сдвигом парадигмы, который мы могли бы изучить. Многие другие инновационные проекты, такие как Cypress, Storybook, Flow и Enzyme, предлагают новые идеи, на которых можно учиться и потенциально внедрять в Ember.

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