2014-10-13 10 views
5

mam tych modeli w aplikacji ember-cli:"Próba zarejestrować nieznaną przetwórnie" użyte w teście modelu

var PuzzleRound = DS.Model.extend({ 
    year: DS.attr('number') 
}); 

var Puzzle = DS.Model.extend({ 
    puzzleRounds: DS.hasMany('puzzleRound', {async: true}) 
}); 

i tu jest moja próba z tests/unit/models/puzzle-test.js:

import { 
    moduleForModel, 
    test 
} from 'ember-qunit'; 
import PuzzleRound from 'weather-roulette/models/puzzle-round'; 

moduleForModel('puzzle', 'Puzzle', { 
    // Specify the other units that are required for this test. 
    needs: ['model:puzzleRound'] 
}); 

test('it exists', function() { 
    var model = this.subject(); 
    // var store = this.store();  
    ok(!!model);    
}); 

otrzymuję ten błąd gdy uruchomiony ember test:

Attempting to register an unknown factory: `model:puzzleRound` 

używam Ember-cli 0.1.1, ember.js 1.7.0 EMB er Data 1.0.0-beta.11. Czy ktoś ma coś, co mogę spróbować naprawić?

Odpowiedz

3

Właśnie wypróbowałem ten kod z ember-cli 0.0.44 i dostałem ten sam błąd, który zrobiłeś.

Zmieniono nazwę obu odniesień do ścieżki modelu puzzleRound na puzzle-round, a następnie test przeszedł dla mnie. Więc:

DS.Model.extend({ 
    puzzleRounds: DS.hasMany('puzzle-round', {async: true}) 
}); 

i

moduleForModel('puzzle', 'Puzzle', { 
    needs: ['model:puzzle-round'] 
}); 

Wiedziałem, że dzielone styl był korzystniejszy od stylu CamelCase, ale nie jestem pewien, kiedy to stał się obowiązkowy. Ten wymóg może być specyficzny dla ember-cli lub ember-qunit.

0

Szukałem rozwiązania podobnego do tego na chwilę, i nie widziałem żadnej wzmianki o moim rozwiązaniu, więc pomyślałem, że i tak będę tu pisał. To naprawdę proste: upewnij się, że kontroler, do którego się odwołujesz, rzeczywiście istnieje.

// my-ember-application/tests/unit/controllers/index/bar-test.js 
moduleFor('controller:index/bar', 'My Bar Test', { 
    beforeEach() { .. } 
}); 

test('it exists', function (assert) { 
    assert.ok(true); 
}); 

Ten kod będzie odwoływać się do kontrolera w tej lokalizacji:

my-ember-application/app/controllers/index/bar.js

Powiązane problemy