Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jasmine fixtures用于具有jQuery对象属性的Backbone.js视图_Jquery_Backbone.js_Jasmine_Fixtures_Jasmine Jquery - Fatal编程技术网

Jasmine fixtures用于具有jQuery对象属性的Backbone.js视图

Jasmine fixtures用于具有jQuery对象属性的Backbone.js视图,jquery,backbone.js,jasmine,fixtures,jasmine-jquery,Jquery,Backbone.js,Jasmine,Fixtures,Jasmine Jquery,我正在尝试测试一个主干视图,该视图的属性设置为jQuery对象。我可以测试视图中的所有属性,除了设置为jQuery对象的属性 我尝试在实例化视图之前加载一个fixture,但是没有找到任何dom元素。我还能够成功地使用fixture,后面是直接使用jQuery的断言。我只是无法准备视图所需的dom 在下面的示例中,规范失败,这些是我通过控制台检查时得到的值: profileView.name # => [] profileView.money # => [] 为这些类型的测试设置

我正在尝试测试一个主干视图,该视图的属性设置为jQuery对象。我可以测试视图中的所有属性,除了设置为jQuery对象的属性

我尝试在实例化视图之前加载一个fixture,但是没有找到任何dom元素。我还能够成功地使用fixture,后面是直接使用jQuery的断言。我只是无法准备视图所需的dom

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

profileView.name  # => []
profileView.money # => []
为这些类型的测试设置dom的正确方法是什么?这是完全错误的方法吗?这不是实际的代码,而是一个非常接近的示例

主干视图

型材夹具

茉莉花


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

在initialize中说@name=$'name'或在render中说@name=@$'name'不是更好吗?当然,假设你的观点没有因为弄乱了@el之外的东西而行为不端。是的,这种方法更容易测试。我正转向那种方法。谢谢,@muistoshort。
App.Views.ProfileView = Backbone.View.extend
  name: $('#name')
  money: $('#money')

  ...
#name name
#money money
...

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

...