Лучший подход к тестированию магистральных представлений с помощью шаблонов с использованием Jasmine

Я изучаю магистраль, поэтому я создаю простое приложение 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).

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

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

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

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


person user1178907    schedule 30.01.2012    source источник


Ответы (2)


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

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

Также есть книга O'Reilly "Developing Backbone.js Applications", в которой глава о тестировании представлений с помощью Jasmine и qUnit

person Maksym Kozlenko    schedule 01.03.2012
comment
первая ссылка изменилась на: github. com/addyosmani/backbone-fundamentals/blob/gh-pages/ - person ylerjen; 03.08.2016

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

person iHiD    schedule 28.04.2012