Лучший подход для тестирования представлений магистрали с помощью шаблонов с использованием жасмина - PullRequest
9 голосов
/ 31 января 2012

Я изучаю магистраль, поэтому я создаю простое приложение Магистрали.Я использую Jasmine Framework для тестирования своего базового приложения.

Как повезет, мой первый тест на жасмин был для Backbone View.Это очень простое представление, использующее шаблон haml-js.Пользователи приложения используют rails 3.1, поэтому все это упаковано через звездочки с помощью гема haml-sprockets, и оно работает.

Однако, когда я тестирую с жасмином, я получаю ошибку

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).

Я ищу «лучшее», то есть наименее разрушительное и, надеюсь,, простой, способ проверить мои представления + шаблоны в жасмине.

Я нашел несколько способов сделать это, но не уверен, что является лучшим:

  1. Используйте jasmine-headless-webkit.Это приведет к потере звездочек, но лишенная возможность доступа к серверу jasmine, такая простая, но с некоторой потерей гибкости
  2. Использование phantom.js, как описано в japhr (извините, stackoverflow не позволил мне опубликовать больше ссылок), будет работать вокруг сервера.боковые ограничения, но это, кажется, очень новый и непроверенный метод, настолько гибкий, но не простой
  3. Предварительно сгенерируйте ваши шаблоны как описано здесь .Это концептуально просто, но требует некоторого обслуживания - поэтому нужно немного поработать с кодом

Предполагая, что у меня есть проект с ~ 20 моделями и ~ 40 представлениями и шаблонами, каков наилучший путь?

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

Проверьте эту статью: Модульное тестирование приложений Backbone с помощью Jasmine

В нем приведены некоторые примеры реализации модульных тестов для представления Backbone JS

.Книга Рейли «Разработка приложений Backbone.js» , в которой есть целая глава по тестированию представлений с помощью Jasmine и qUnit

0 голосов
/ 28 апреля 2012

Я написал подробное сообщение в блоге о том, как Backbone.js, CoffeeScript и Jasmine прекрасно работают вместе. Надеюсь, это будет полезно всем, кто сталкивается с этим вопросом: http://ihid.co.uk/blog/backbone-js-coffeescript-jasmine-haml-and-rails-working-together

...