Вопрос

Я строю приложение Backbone.js на рельсах 3.1. Я использую CoffeeScript, чтобы написать классы магистралей, а жасмин (через жасмин-безголовный webkit) для тестирования.

Учитывая следующее (частичное) дерево:

.
├── app
│   ├── assets
│   │   ├── javascripts
│   │   │   └── views
│   │   │       ├── avia_view.js.coffee
├── spec
│   ├── javascripts
│   │   └── views
│   │       └── avia_view_spec.js.coffee

... я ожидаю avia_view_spec.js.coffee знать о Avia.AviaView, что определено в avia_view.js.coffee.

Тем не менее, я получаю следующий вывод от работы bundle exec jasmine-headless-webkit:

Running Jasmine specs...
F

Avia.AviaView render creates a new MatricesView . (/home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee:10)
  ReferenceError: Can't find variable: Avia in /home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee (line ~5)
  ReferenceError: Can't find variable: Avia in /home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee (line ~10)

Мой jasmine.yml содержит следующее:

src_files:
  - public/javascripts/prototype.js
  - public/javascripts/effects.js
  - public/javascripts/controls.js
  - public/javascripts/dragdrop.js
  - public/javascripts/application.js
  - public/javascripts/**/*.js

я считать Мне нужно сказать Жасмин загрузить содержимое avia_view.js.coffee Но я не совсем уверен, как. Добавление явной ссылки в src_files раздел в jasmine.yml Кажется, не имеет значения ...

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

Это было полезно?

Решение

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

Редактировать: вот Еще одна длинная и теоретическая, но хорошая документация по этой теме.

Другие советы

Попробуйте добавить это в свой avia_view.js.coffee

(exports ? this).Avia = Avia 

Видеть это Для подробного объяснения.

В качестве альтернативы попробуйте это;

window.Avia = Avia

Мы столкнулись с той же проблемой; я очень рекомендую Рис Жасмин

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top