Проблемное модульное тестирование ember-модели данных с использованием конача
Следующий тест пройдет, если я буду запускать каждую спецификацию независимо. Если я запускаю их последовательно, пройдет только первая спецификация.
#= require spec_helper
#= require models/job
#= require ./fixtures/job
describe "Job", ->
beforeEach (done) ->
@job = App.Job.find(1)
@job.on 'didLoad', -> done()
it "returns property idName", ->
expect( @job.get('idName') ).to.equal("#1 - first job")
it "expects property idName to update if name changes", ->
@job.set('name', 'new name')
expect( @job.get('idName') ).to.equal("#1 - new name")
it "expects property idName to update if originalId changes", ->
@job.set('originalId', 7)
expect( @job.get('idName') ).to.equal("#7 - first job")
Ошибка, которую дает мне конача:
Error: timeout of 2000ms exceeded at http://localhost:3500/assets/mocha.js:4001:14
У кого-нибудь есть какие-либо предложения. Должен ли я использовать жасмин?
1 ответ
Решение
Хорошо, у меня есть решение. Я думал, что приложение было инициализировано перед каждой спецификацией. Кажется, после первого теста задание загружается, поэтому я проверяю, загружено ли задание, и вызываю готовую функцию.
beforeEach (done) ->
@job = App.Job.find(1)
@job.on 'didLoad', -> done()
afterEach ->
Ember.run ->
App.reset()