我正在尝试测试具有设置为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)
...
答案 0 :(得分:0)
由于评论中提到的mu太短,这不是正确的方法。将jQuery对象分配移动到初始化,渲染或其他方法更容易测试。