【问题标题】:Best Approach to Test Backbone Views with Templates Using Jasmine使用 Jasmine 使用模板测试主干视图的最佳方法
【发布时间】: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 中的视图 + 模板。

我已经找到了很多方法来做到这一点,但不确定什么是“最好的”:

  1. 使用 jasmine-headless-webkit 。这将使用 sprockets,但访问 jasmine 服务器的能力较弱,如此简单但失去了一些灵活性
  2. 使用 phantom.js 由 japhr 描述(抱歉 stackoverflow 阻止我发布更多链接)将解决服务器端限制,但这似乎是一种非常新且未经测试的方法,非常灵活但并不简单
  3. 按照here 的描述预先生成您的模板。这在概念上很简单,但需要一些维护 - 所以需要一些编码工作

假设我有一个包含 ~ 20 个模型和 ~ 40 个视图和模板的项目,那么最好的方法是什么?

【问题讨论】:

    标签: backbone.js jasmine


    【解决方案1】:

    查看这篇文章:Unit Testing Backbone Applications With Jasmine

    它有一些示例如何为 Backbone JS 视图实现单元测试

    还有一本 O'Reilly 的书 "Developing Backbone.js Applications",其中有一整章是关于使用 Jasmine 和 qUnit 测试视图

    【讨论】:

    【解决方案2】:

    我写了一篇关于如何让 Backbone.js、CoffeeScript 和 Jasmine 很好地协同工作的博文。希望它对偶然发现这个问题的人有用:http://ihid.co.uk/blog/backbone-js-coffeescript-jasmine-haml-and-rails-working-together

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多