用于Backbone.js视图的Jasmine fixture,其属性是jQuery对象

时间:2013-10-31 23:58:30

标签: jquery backbone.js jasmine fixtures jasmine-jquery

我正在尝试测试具有设置为jQuery对象的属性的Backbone视图。我可以测试视图中的所有属性,除了设置为jQuery对象的属性。

我在实例化视图之前尝试加载一个fixture,但没有找到任何dom元素。我也可以成功使用fixture,然后直接使用jQuery进行断言。我只是无法准备视图锁定所需的dom。

在下面的示例中,规范失败,这些是我通过控制台检查时最终得到的值:

profileView.name  # => []
profileView.money # => []

为这些测试设置dom的正确方法是什么?这是完全错误的做法吗?这不是实际的代码,而是一个相当接近的例子。


主干视图

App.Views.ProfileView = Backbone.View.extend
  name: $('#name')
  money: $('#money')

  ...

个人资料夹具

#name name
#money money

Jasmine Spec

...

describe "ProfileView", ->
  it "money is present", ->
    loadFixtures("profile")
    profileView = new App.Views.ProfileView
    expect(profileView.money.length).toEqual(1)

...

1 个答案:

答案 0 :(得分:0)

由于评论中提到的mu太短,这不是正确的方法。将jQuery对象分配移动到初始化,渲染或其他方法更容易测试。