0

我有三个实体Token - N:1 - User - N:1 - Company。我让 ember-cli 生成模型测试,但都失败了。这在某种程度上是预期的,因为在测试令牌时它应该需要用户,所以我将用户添加到需求中。对我来说神秘的是为什么我也必须包括 Company?我必须在每个模型测试中包含我的所有模型吗?

// 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')
4

1 回答 1

2

如果没有看到您的模型定义,我无法确定(您介意发布这些定义吗?),但这似乎是因为您的模型之间存在关系。从Ember CLI 网站

注意:如果您正在测试的模型与任何其他模型有关系,则必须通过需求属性指定这些关系。

我的猜测是您的模型与您的模型和token模型都有关系。(或者您的与 相关,而 与相关。)usercompanytokenuserusercompany

Ember CLI 的测试目标是尽可能地隔离它们,因此它不会为您加载任何内容 - 您必须声明所有依赖项。这似乎很痛苦,但它可以带来更好的单元测试。

于 2015-03-20T13:27:49.023 回答