【发布时间】:2012-01-30 20:43:34
【问题描述】:
我正在学习主干,所以我正在构建一个简单的主干应用程序。我正在使用 jasmine 框架来测试我的主干应用程序。
幸运的是,我的第一个 jasmine 测试是针对主干视图。这是一个使用haml-js 模板的非常简单的视图。应用程序用户使用 rails 3.1,所以整个东西是在 haml-sprockets gem 的帮助下通过 sprockets 打包的,并且可以正常工作。
但是,当我使用 jasmine 进行测试时出现错误
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 gem 编译使用 haml-js 并附加到 window.JST)。
我正在寻找“最好的”,即破坏性最小且希望简单的方法来测试我在 jasmine 中的视图 + 模板。
我已经找到了很多方法来做到这一点,但不确定什么是“最好的”:
- 使用 jasmine-headless-webkit 。这将使用 sprockets,但访问 jasmine 服务器的能力较弱,如此简单但失去了一些灵活性
- 使用 phantom.js 由 japhr 描述(抱歉 stackoverflow 阻止我发布更多链接)将解决服务器端限制,但这似乎是一种非常新且未经测试的方法,非常灵活但并不简单
- 按照here 的描述预先生成您的模板。这在概念上很简单,但需要一些维护 - 所以需要一些编码工作
假设我有一个包含 ~ 20 个模型和 ~ 40 个视图和模板的项目,那么最好的方法是什么?
【问题讨论】:
标签: backbone.js jasmine