Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Разработка

Тесты на генерацию адресов: что проверять

Логика адресов кажется мелочью, но её поломка бьёт по индексации, поэтому её стоит защитить автоматическими проверками.

Почему адреса нужно тестировать отдельно

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

Набор контрольных заголовков

Составьте таблицу входных названий и ожидаемых слагов и проверяйте её при каждом запуске тестов.

Щётки и ёмкости    → shhetki-i-emkosti
Ёлка               → elka
Кофе-машина, 2 шт. → kofe-mashina-2-sht
Съезд лётчиков     → sezd-lyotchikov

Включайте в набор все проблемные буквы из таблицы транслитерации.

Что проверять у генератора слагов

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

Что проверять у маршрутов

  1. существующий адрес отвечает кодом 200;
  2. несуществующий слаг — кодом 404;
  3. старый слаг отвечает редиректом 301 на новый;
  4. вариант с заглавной буквой перенаправляется на основной;
  5. служебные разделы закрыты от индексации.

Запуск тестов в процессе выпуска

Практика: включите эти проверки в автоматический процесс выпуска — тогда изменение, ломающее адреса, не попадёт на боевой сайт.

Крайние случаи, которые стоит включить обязательно

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

  • пустая строка и пробелы — слаг не создаётся, приложение просит уточнить название;
  • только символы вроде «!!!» — используется идентификатор записи;
  • тысяча символов — результат ограничивается допустимой длиной.

Интеграционные проверки на реальных страницах

Помимо небольших тестов отдельных функций полезен сквозной сценарий: создать запись, открыть её по сформированному адресу, изменить слаг и проверить редирект. Такой тест охватывает сразу генерацию, хранение, маршруты и историю, поэтому ловит ошибки на стыках, которые не видны по отдельности.

Проверка на копии реальных данных

Синтетические примеры не заменят реальных заголовков. Периодически прогоняйте генератор на выгрузке настоящих названий с боевого сайта и сравнивайте результат с текущими адресами. Любое расхождение — повод задуматься, не собираетесь ли вы случайно изменить уже опубликованные адреса.

Частые вопросы

Зачем нужен набор контрольных заголовков?

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

Какие коды ответа стоит проверять автоматически?

200 для существующих адресов, 404 для несуществующих и 301 для перенаправлений со старых и неканонических вариантов.

Где запускать такие тесты?

В автоматическом процессе выпуска, чтобы изменения, ломающие адреса, не попадали на боевой сайт.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также