我正在
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]}"
有关此行为的任何建议吗?
答案 0 :(得分:0)
当单独运行该测试时,可能还没有创建/初始化适配器。或者也许它是在第一次使用适配器时初始化的。