我正在嘗試編寫一個Ember視圖的基本測試,下面是這裏:http://shairez.com/2012/07/ember-js-tdd-how-to-test-your-ember-views/但我總是收到一個「Uncaught TypeError:Can not call method」appendTo '未定義'Jasmine,Ember Views和Runloop:不能調用未定義的方法'appendTo'
規格:
describe "my view", ->
myView = null
beforeEach ->
myView = Sysys.ActView.create()
Ember.run ->
myView.append()
afterEach ->
Ember.run ->
myView.remove()
myView = null
it "should be defined", ->
expect(myView).toBeDefined()
it "should have a button", ->
expect(myView.$("button.btn-primary").length).toEqual(1);
的錯誤出現來自Ember.View.appendTo:
this.$().appendTo(target)
其中target
是<body class="ember-application">...</body>
(如預期)和this
是myView
。然而,this.state
是「預渲染」和this.$()
是不確定的,這就是爲什麼出現錯誤。
我不知道我做錯了什麼:是越來越創建視圖,但不會呈現我想。正如本教程所建議的那樣,我還撥打。
我還注意到,即使我不運行任何測試,我仍然得到一個未捕獲的異常 - 這是同樣的事情,除了ApplicationView。所以我想知道如果我正在爲測試正確初始化所有東西。包含文件低於(使用Rails 3.2資產管道)
Spec.js.coffee
#=require_tree ./
#=require_tree ../../app/assets/javascripts
應用程序/資產/ Javascript角/ 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 .
應用程序/ assets/javascripts/sysys.js.coffee:
#= require ./store
#= require_tree ./models
#= require_tree ./controllers
#= require_tree ./views
#= require_tree ./helpers
#= require_tree ./templates
#= require_tree ./routes
#= require_self
Sysys.initialize()