我正在尝试使用 Jasmine(通过 jasmine-headless-webkit)测试一些backbone.js 视图。一切都运行良好,除了我的 haml-js 模板在测试中无法访问。
我认为以下代码可以正常工作:
render: =>
html = JST['views/avia_view_template']()
$(@el).html(html)
...但是当它作为 Jasmine 规范的一部分运行时,出现以下故障:
ReferenceError: Can't find variable: JST in /home/duncan/avia/app/assets/javascripts/views/avia_view.js.coffee
我怀疑我在jasmine.yml
. 我已经明确包含了它仍然失败的模板文件:
src_files:
- "vendor/**/*.{js,coffee}"
- "lib/**/*.{js,coffee}"
- app/assets/javascripts/application.js
- app/assets/javascripts/avia.js
- app/assets/javascripts/jquery-1.6.4.js
- app/assets/javascripts/underscore.js
- app/assets/javascripts/backbone.js
- app/assets/javascripts/jquery.jqGrid.min.js
- app/assets/javascripts/views/avia_view_template.jst.hamljs
- app/assets/javascripts/views/avia_view.js.coffee
也许我只是在这里采取了错误的方法......我应该使用 Jasmine 来存根和模拟对 JST 和 jQuery 的调用吗?严格的单元测试方法说我应该这样做,在这种情况下,缺少模板访问不是问题。
任何提示 - 无论是我的测试方法,还是特定的 JST 失败,都将不胜感激。