2
在生產環境中運行代碼時,我不必與Ember.js runloop進行交互,但在我的測試中,有時我必須調用Enber.run.end()來進行測試通過。這可能會造成其他測試失敗的影響。測試Ember.js和runloop
例如,這裏是我的spec_helper:
beforeEach ->
$('#jasmine_content').append('<div id="fieldset"></div>')
Ember.test = true
Lead.run()
$ ->
$('body').append($('<div id="jasmine_content"></div>'))
我設置Ember.test標誌設置爲true在上面的代碼,我不能完全肯定這是什麼一樣。
Lead.run()創建灰燼應用:
window.Lead = Ember.Application.create
Controllers: {Leads: {}}
Models: {}
Views: {}
run: ->
@initEvents()
@.set('search', Lead.Controllers.UrlSearch.create())
# etc.
在一些測試中,我發現自己不得不調用ember.run.end(),以確保項目將在DOM等
describe 'Controllers', ->
describe 'UrlSearch', ->
it 'should append view', ->
Ember.run.end()
expect($('#goButton').length).toEqual(1)
從單個測試結束runloop感覺不對。
每當我更新我spec_helper這樣:
beforeEach ->
$('#jasmine_content').append('<div id="fieldset"></div>')
Ember.test = true
Lead.run()
Ember.run.end()
我得到錯誤信息,如:
無法在的Metamorph執行操作,是不是在DOM
或
必須有當前運行循環。
是否有任何指導或最佳做法來協商測試runloop?
each_test.js鏈接破碎。 – Intentss 2013-05-24 18:00:45
@Intentss好趕上,我已經更新了鏈接 – pangratz 2013-05-25 16:10:25