为什么在 ember 中测试模型时必须 'need' 所有模型
Why do I have to 'need' all models when testing models in ember
我有三个实体 Token - N:1 - User - N:1 - Company
。我让 ember-cli 生成模型测试,但都失败了。这在某种程度上是意料之中的,因为在测试令牌时它应该需要用户所以我将用户添加到需求中。对我来说很奇怪的是为什么我也必须包括公司?我是否必须在每个模型测试中包含我的所有模型?
// tests/unit/models/token-test.js
import {moduleForModel, test} from 'ember-qunit';
moduleForModel('token', {
needs: ['model:user', 'model:company']
});
test('it exists', function(assert) {
var model = this.subject();
// var store = this.store();
assert.ok(!!model);
});
//models/token.js
user: DS.belongsTo('user')
//models/user.js
tokens: DS.hasMany('token')
company: DS.belongsTo('company')
//models/company.js
users: DS.hasMany('user')
如果没有看到您的模型定义,我无法确定(您介意发布这些吗?),但似乎是因为您的模型之间存在关系。来自 Ember CLI website:
Note: If the model you are testing has relationships to any other model, those must be specified through the needs property.
我猜你的 token
模型与你的 user
和 company
模型都有关系。 (或者你的 token
与 user
相关,而 user
与 company
相关。)
Ember CLI 的测试目标是让它们尽可能独立,因此它不会为您加载任何东西 - 您必须声明 all 依赖项.这看起来很痛苦,但它有助于更好地进行单元测试。
我有三个实体 Token - N:1 - User - N:1 - Company
。我让 ember-cli 生成模型测试,但都失败了。这在某种程度上是意料之中的,因为在测试令牌时它应该需要用户所以我将用户添加到需求中。对我来说很奇怪的是为什么我也必须包括公司?我是否必须在每个模型测试中包含我的所有模型?
// tests/unit/models/token-test.js
import {moduleForModel, test} from 'ember-qunit';
moduleForModel('token', {
needs: ['model:user', 'model:company']
});
test('it exists', function(assert) {
var model = this.subject();
// var store = this.store();
assert.ok(!!model);
});
//models/token.js
user: DS.belongsTo('user')
//models/user.js
tokens: DS.hasMany('token')
company: DS.belongsTo('company')
//models/company.js
users: DS.hasMany('user')
如果没有看到您的模型定义,我无法确定(您介意发布这些吗?),但似乎是因为您的模型之间存在关系。来自 Ember CLI website:
Note: If the model you are testing has relationships to any other model, those must be specified through the needs property.
我猜你的 token
模型与你的 user
和 company
模型都有关系。 (或者你的 token
与 user
相关,而 user
与 company
相关。)
Ember CLI 的测试目标是让它们尽可能独立,因此它不会为您加载任何东西 - 您必须声明 all 依赖项.这看起来很痛苦,但它有助于更好地进行单元测试。