Зачем мне "нужны" все модели при тестировании моделей в 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 для тестов состоит в том, чтобы они были настолько изолированы, насколько это возможно, поэтому он ничего для вас не загружает - вы должны объявить все зависимости. Это похоже на боль, но это делает гораздо лучше юнит-тесты.