Есть несколько мест, где вы можете поместить это, что поможет уменьшить дублирование. Основной макет является идеальным кандидатом. Другой возможностью является вспомогательный метод, который намного проще внедрить.
Вы также можете определить условный вспомогательный метод javascript_tag, который будет вводить JavaScript, только если ваш триггер установлен. Обычно это в духе:
def javascript_testing_tag(content)
AppConfig['js_testing'] ? javascript_tag(content) : ''
end
Тогда это довольно простое упражнение - обернуть все ваши тестовые сценарии этим условием. Позже будет легче проводить рефакторинг, если логический триггер для этого поведения изменится.
Оптимальная реализация зависит от того, какой тип скриптового контента вы вводите. Если он тесно связан с JavaScript, который может отображаться в определенном представлении, вы можете застрять в этом.
В качестве альтернативы можно просто пометить каждую страницу и использовать тестовый комплект JavaScript, который будет запускать определенное поведение в зависимости от структуры документа. Например, если есть элемент div # user_list, вы можете запустить testUserList ().
В таком случае просто не включать тестовый файл JavaScript в не тестируемые среды.