Зачем мне "нужны" все модели при тестировании моделей в 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')

1 ответ

Решение

Не видя определения вашей модели, я не могу знать наверняка (вы не против опубликовать их?), Но, похоже, это потому, что ваши модели имеют отношения между ними. С сайта Ember CLI:

Примечание. Если модель, которую вы тестируете, имеет отношения к любой другой модели, они должны быть указаны через свойство needs.

Я думаю, что ваш token Модель имеет отношения как к вашему user а также company моделей. (Или твой token связано с userи user связано с company.)

Цель Ember CLI для тестов состоит в том, чтобы они были настолько изолированы, насколько это возможно, поэтому он ничего для вас не загружает - вы должны объявить все зависимости. Это похоже на боль, но это делает гораздо лучше юнит-тесты.

Другие вопросы по тегам