Uncaught TypeError: невозможно вызвать метод «extractId» неопределенных данных Ember во время выполнения тестов QUnit.

я собираюсь

Uncaught TypeError: Cannot call method 'extractId' of undefined 

при выполнении интеграционных тестов с QUnit.

Неудачный тест:

module "Points",
  setup: ->
    App.reset()
    Ember.run App, App.advanceReadiness

test "Index", ->
  visit("/points").then ->
    ok(exists(".title:contains('POINTS')"), "Retrieved title of points section")
    App.Point.find().then (points) ->
      equal(find(".listContainer li").length, points.get('length') , "Retrieved correct number of points")

Запуск этого теста в изоляции работает хорошо, но запуск этого теста в модуле вызывает ошибку, упомянутую выше. Похоже на adapterForType(App.Point) возвращает неопределенное значение.

Обновление теста до

test "Index", ->
  result = App.Point.find()
  visit("/points").then ->
    ok(exists(".title:contains('POINTS')"), "Retrieved title of points section")
    result.then (points) ->
      equal(find(".listContainer li").length, points.get('length') , "Retrieved correct number of points")

смягчает ошибку.

Значение, перенастроенное adapterForType в правильном тесте:

Ember.inspect(this.adapterForType(App.Point))
"{serializer: <DS.FixtureSerializer:ember455>, _attributesMap: [object Object], _configurationsMap: [object Object], _outstandingOperations: [object Object], _dependencies: [object Object]}"

Любое предложение, связанное с этим поведением?


person bugman    schedule 19.08.2013    source источник


Ответы (1)


Возможно, что при изолированном запуске этого теста адаптер еще не был создан/инициализирован. Или, может быть, он лениво инициализируется при первом использовании адаптера.

person Kingpin2k    schedule 19.08.2013