Unit testing Ember cli:模型的关系单元测试失败
我正在使用Ember cli和qunit进行测试 项目模型Unit testing Ember cli:模型的关系单元测试失败,unit-testing,ember.js,ember-data,qunit,Unit Testing,Ember.js,Ember Data,Qunit,我正在使用Ember cli和qunit进行测试 项目模型 import DS from 'ember-data'; var attr = DS.attr, belongsTo = DS.belongsTo; export default DS.Model.extend({ offer: belongsTo('offer'), }); 这里我添加了测试项目和报价模型之间的关系 项目测试 import Ember from "ember"; import DS from "embe
import DS from 'ember-data';
var attr = DS.attr,
belongsTo = DS.belongsTo;
export default DS.Model.extend({
offer: belongsTo('offer'),
});
这里我添加了测试项目和报价模型之间的关系
项目测试
import Ember from "ember";
import DS from "ember-data";
import { test, moduleForModel } from 'ember-qunit';
moduleForModel('item', 'Item Model', {
needs: ['model:item']
});
test('offer relationship', function() {
var relationships = Ember.get(App.Item, 'relationships');
deepEqual(relationships.get(App.Offer), [
{ name: 'offer', kind: 'belongsTo' }
]);
});
错误跟踪:
Died on test #1 at test (http://localhost:4200/assets/vendor.js:73836:13)
at eval (goodcity/tests/unit/item-test.js:44:5)
at requireModule (http://localhost:4200/assets/vendor.js:54:29)
at http://localhost:4200/assets/test-loader.js:14:29: App is not defined
Source:
ReferenceError: App is not defined
at Object.eval (goodcity/tests/unit/item-test.js:45:37)
at Object.wrapper (http://localhost:4200/assets/vendor.js:73824:31)
at Object.Test.run (http://localhost:4200/assets/qunit.js:203:18)
at http://localhost:4200/assets/qunit.js:361:10
at process (http://localhost:4200/assets/qunit.js:1453:24)
at http://localhost:4200/assets/qunit.js:479:5
我遗漏了什么吗?我刚刚在将旧的Ember应用程序转换为新的Ember cli的过程中遇到了类似的情况。由于Ember CLI使用ES6模块语法,因此无法直接访问App对象上的任何内容 您将需要从对象各自的模型文件中导入对象
import Item from "<modulePrefix>/models/item";
import Offer from "<modulePrefix>/models/offer";
import Ember from "ember";
import { test, moduleForModel } from 'ember-qunit';
/* Import Models */
import Item from "stackoverflow/models/item";
import Offer from "stackoverflow/models/offer";
moduleForModel('item', 'Item', {
// Item needs the offer model.
needs: ['model:offer']
});
test('offer relationship', function() {
/* For some reason this was necessary to prime the store. */
/* Without this line I get the error:
'undefined' is not an object (evaluating 'store.modelFor') */
var model = this.subject();
/* App.Item -> Item, App.Offer -> Offer */
var relationships = Ember.get(Item, 'relationships');
deepEqual(relationships.get(Offer), [
{ name: 'offer', kind: 'belongsTo' }
]);
});