Ember.js 假装器和QUnit:错误:断言失败:来自findQuery的响应必须是数组,而不是未定义的
最近的更新似乎破坏了我的测试。我正在使用假装器模拟服务器调用,并且得到了错误:断言失败:来自findQuery的响应必须是数组,而不是未定义的 请注意,当我在应用程序中访问该页面时,不会出现错误。此错误仅在我运行测试时出现 我已经看过了,但这些解决方案似乎都不适用于我的情况 以下是我的伪装助手中的相关代码:Ember.js 假装器和QUnit:错误:断言失败:来自findQuery的响应必须是数组,而不是未定义的,ember.js,ember-data,ember-cli,ember-qunit,Ember.js,Ember Data,Ember Cli,Ember Qunit,最近的更新似乎破坏了我的测试。我正在使用假装器模拟服务器调用,并且得到了错误:断言失败:来自findQuery的响应必须是数组,而不是未定义的 请注意,当我在应用程序中访问该页面时,不会出现错误。此错误仅在我运行测试时出现 我已经看过了,但这些解决方案似乎都不适用于我的情况 以下是我的伪装助手中的相关代码: var scores = [ { id: 1, name: 'score 1' } ]; var levels = [ { id: 1, nam
var scores = [
{
id: 1,
name: 'score 1'
}
];
var levels = [
{
id: 1,
name: 'level 1',
score_id: 1
}, {
id: 2,
name: 'level 2',
score_id: 1
}, {
id: 3,
name: 'level 3',
score_id: 1
}
];
return new Pretender(function() {
this.get('api/v1/scores/:id', function(request) {
var score = scores.find(function(score) {
// in the failing test, request.params.id is '1'
if (score.id === parseInt(request.params.id, 10)) {
return score;
}
});
return [200, {"Content-Type": "application/json"}, JSON.stringify({
score: score,
levels: levels
})];
});
});
这就是测试:
test('displays "Project Score"', function() {
visit('/projects/32/scores/1');
andThen(function() {
equal(find('h3.title').text(), 'Project Score');
});
});
请注意,这仅影响使用上述动态路由的测试。使用此路线的测试正常工作:
this.get('api/v1/scores', function(request) {
return [200, {"Content-Type": "application/json"}, JSON.stringify({
scores: scores
})];
});
我尝试通过以下操作绕过查找:
this.get('api/v1/scores/:id', function(request) {
return [200, {"Content-Type": "application/json"}, JSON.stringify({
score: [
{
id: 1,
name: 'score 1'
}
],
levels: levels
})];
});
然而,我仍然得到同样的错误
有什么想法吗?如何调试此问题
分类版本:
Ember CLI: 0.1.12
Node: 0.10.33
NPM: 2.1.8
Ember: 1.10.0
Ember Data: 1.0.0-beta.15
Ember CLI Pretender: 0.3.1
Pretender: 0.6.0
Handlebars: 2.0.0
HTMLBars: ^0.7.4
Ember QUnit: 0.1.8
Ember QUnit Notifications: 0.0.6
QUnit: 1.17.1