Проблемное модульное тестирование 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()
Другие вопросы по тегам