Я изучаю магистраль, поэтому я создаю простое приложение Backbone. Я использую жасминовый фреймворк для тестирования своего основного приложения.
Как назло, мой первый тест жасмина был для Backbone View. Это очень простое представление, использующее шаблон haml-js. Пользователи приложения используют рельсы 3.1, поэтому все это упаковано через sprockets с помощью haml-sprockets gem, и это работает.
Однако, когда я тестирую жасмин, я получаю сообщение об ошибке
TypeError: не удается вызвать метод «backbone/templates/admin_personal_attribute_template» неопределенного
Я так понимаю, это потому, что шаблона haml-js нет.
Обычно доступ к этому шаблону осуществляется следующим образом:
$(this.el).html(window.JST["backbone/templates/admin_personal_attribute_template"]({pars:this.model.attributes}));
(т. е. компиляция haml-sprockets использует haml-js и добавляется к window.JST).
Я ищу «лучший», то есть наименее разрушительный и, надеюсь, простой способ проверить мои представления + шаблоны в жасмин.
Я нашел несколько способов сделать это, но не уверен, что это «лучший»:
- Используйте jasmine-headless-webkit. Это будет использовать звездочки, но потеряет возможность доступа к серверу jasmine, поэтому просто, но некоторая потеря гибкости
- Использование phantom.js, как описано japhr (извините, stackoverflow не позволил мне опубликовать больше ссылок), позволит обойти ограничения на стороне сервера, но это, похоже, очень новый и непроверенный метод, такой гибкий, но не простой.
- Предварительно создайте свои шаблоны, как описано здесь. Это концептуально просто, но требует некоторого обслуживания - так что некоторые работы по кодированию
Предполагая, что у меня есть проект с ~ 20 моделями и ~ 40 представлениями и шаблонами, как лучше всего пойти?