Ember.js Jasmine、Ember视图和Runloop:无法调用未定义的

Ember.js Jasmine、Ember视图和Runloop:无法调用未定义的,ember.js,jasmine,Ember.js,Jasmine,我正试图为Ember视图编写一个基本测试,如下所示:但我一直得到一个未捕获的TypeError:无法调用未定义的方法“appendTo” 规格: 错误来自: 目标是。。。正如所料,这是myView。但是,this.state是preRender,而this.$是未定义的,这就是发生错误的原因 我不确定我做错了什么:视图正在创建,但我认为没有渲染。正如教程所建议的,我还可以调用append inside Ember.run 我还注意到,即使我没有运行任何测试,我仍然会得到一个未捕获的异常——这是一

我正试图为Ember视图编写一个基本测试,如下所示:但我一直得到一个未捕获的TypeError:无法调用未定义的方法“appendTo”

规格:

错误来自:

目标是。。。正如所料,这是myView。但是,this.state是preRender,而this.$是未定义的,这就是发生错误的原因

我不确定我做错了什么:视图正在创建,但我认为没有渲染。正如教程所建议的,我还可以调用append inside Ember.run

我还注意到,即使我没有运行任何测试,我仍然会得到一个未捕获的异常——这是一样的,除了ApplicationView。所以我想知道我是否为测试正确地初始化了所有内容。下面是使用Rails3.2和资产管道的include文件

咖啡

#=require_tree ./
#=require_tree ../../app/assets/javascripts
app/assets/javascripts/application.js.coffee:

#= require jquery
#= require jquery_ujs

#= require vendor/handlebars-1.0.0.beta.6
#= require vendor/ember-1.0.0-pre.2
#= require vendor/ember-data

#= require_self
#= require sysys
Sysys = Ember.Application.create();
#= require_tree .
#= require ./store
#= require_tree ./models
#= require_tree ./controllers
#= require_tree ./views
#= require_tree ./helpers
#= require_tree ./templates
#= require_tree ./routes
#= require_self

Sysys.initialize()
app/assets/javascripts/sysys.js.coffee:

#= require jquery
#= require jquery_ujs

#= require vendor/handlebars-1.0.0.beta.6
#= require vendor/ember-1.0.0-pre.2
#= require vendor/ember-data

#= require_self
#= require sysys
Sysys = Ember.Application.create();
#= require_tree .
#= require ./store
#= require_tree ./models
#= require_tree ./controllers
#= require_tree ./views
#= require_tree ./helpers
#= require_tree ./templates
#= require_tree ./routes
#= require_self

Sysys.initialize()

只有在将元素插入DOM后,才能调用this.$。由于您注意到您仍处于“preRender”状态,而尚未处于DOM“inDom”状态,因此原因可能是在重新渲染器中,请检查调用堆栈。 例如,当使用bindAttr并且它绑定到的属性已经被修改时,即使视图没有插入到DOM*cough*调用堆栈*cough*中,也会发生这种情况