backbone.js - 使用 Jasmine 模板测试 Backbone View 的最佳方法

标签 backbone.js jasmine

我正在学习 Backbone ,因此我正在构建一个简单的Backbone应用程序。我正在使用jasmine框架来测试我的主干应用程序。

幸运的是,我的第一个 Jasmine 测试是针对Backbone View的。这是使用haml-js模板的非常简单的 View 。应用程序用户使用rails 3.1,因此可以在haml-sprockets gem的帮助下通过链轮打包整个程序,并且可以正常工作。

但是,当我用 Jasmine 测试时,我得到一个错误

TypeError: Cannot call method 'backbone/templates/admin_personal_attribute_template' of undefined



我了解这是因为不存在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 中测试我的 View 和模板。

我已经找到了很多方法来做到这一点,但是不确定什么是“最佳”方法:
  • 使用jasmine-headless-webkit。这将充分利用链轮,但是访问 Jasmine 服务器的能力较弱,因此简单但缺乏灵活性
  • 使用japhr所描述的phantom.js(抱歉,stackoverflow阻止了我发布更多链接)可以解决服务器端的限制,但这似乎是一个非常新颖且未经测试的方法,因此灵活但不简单
  • 将您的模板预先生成为here。从概念上讲这很简单,但是需要维护-因此需要一些编码工作

  • 假设我有一个约20个模型,约40个 View 和模板的项目,最好的方法是什么?

    最佳答案

    查看本文:Unit Testing Backbone Applications With Jasmine

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

    另外还有一本O'Reilly的书"Developing Backbone.js Applications",其中有一整章介绍了如何使用Jasmine和qUnit测试 View

    关于backbone.js - 使用 Jasmine 模板测试 Backbone View 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9070496/

    相关文章:

    javascript - 在 jasmine-ajax 模拟响应中设置响应 header ?

    jquery - 根据输入动态创建多个不同高度的<section>

    javascript - BackboneJS - 从 PHP 文件中获取数据并在 View 中显示

    带有 Jasmine/Karma 的 Angular Mock 字段/属性

    javascript - 使用 jasmine-node 在 Frisby JS 中忽略 child 测试

    javascript - 单元测试javascript代码风格

    javascript - Backbone : Fire event on any error

    javascript - 如何在Backbone中获取url参数?

    html - 评估 YUi 和 BackBone

    javascript - 如何在 jasmine 中模拟按键进行单元测试