0

私は 3 つのエンティティを持っていToken - N:1 - User - N:1 - Companyます。ember-cli にモデル テストを生成させましたが、すべて失敗しました。Token をテストするときは User が必要なので、user を needs に追加しました。私にとって不可解なのは、なぜ会社も含めなければならないのかということです。すべてのモデル テストにすべてのモデルを含める必要がありますか?

// 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 Web サイトから:

注: テストしているモデルに他のモデルとの関係がある場合は、ニーズ プロパティを使用してそれらを指定する必要があります。

私の推測では、あなたのモデルはあなたのとモデルtokenの両方と関係があると思います。(または、 yourは に関連し、は に関連しています。)usercompanytokenuserusercompany

テストに対する Ember CLI の目標は、テストを可能な限り分離することです。そのため、何もロードされません。すべての依存関係を宣言する必要があります。面倒なように思えますが、これにより単体テストが大幅に改善されます。

于 2015-03-20T13:27:49.023 に答える