2015-03-19 4 views
0

У меня есть три объекта Token - N:1 - User - N:1 - Company. Я позволил ember-cli генерировать модельные тесты, и все они потерпели неудачу. Это как-то ожидалось, так как при тестировании Token ему нужен пользователь, поэтому я добавил пользователя в потребности. Что для меня таинственное, почему я должен включать компанию? Должен ли я включать все мои модели в каждый тест модели?Зачем мне «нужны» все модели при тестировании моделей в ember

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

ответ

2

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

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

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

целью

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

+0

'' 'token''' связан с' '' user''', а '' 'user''' связан с' '' '' '''''. Вы правы, добавив еще один объект, связанный с компанией, я обнаружил, что '' 'Token''' и' '' User''' не нужны. Поэтому мне не нужны все модели везде, но только один или два уровня соединений. – Keo

Смежные вопросы