2014-10-13 2 views
5

Ich habe diese Modelle in einem glut-cli App:"Der Versuch, ein unbekanntes Werk registrieren" in Modellversuch

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

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

Und hier ist mein Test von 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);    
}); 

ich diesen Fehler beim laufen ember test:

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

ich bin mit glut-cli 0.1.1, 1.7.0 Ember.js, emb er Daten 1.0.0-beta.11. Hat jemand etwas, was ich versuchen kann, das zu beheben?

Antwort

3

Ich habe gerade diesen Code mit ember-cli 0.0.44 ausprobiert und ich habe den gleichen Fehler wie du.

Ich benannte beide Referenzen auf puzzleRound Modell Pfad zu puzzle-round und dann Ihren Test bestanden für mich. Also:

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

und

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

wusste ich, dass die Bindestriche Stil über die Camelcase-Stil bevorzugt wurde, aber ich bin nicht sicher, wenn diese verpflichtend wurde. Diese Anforderung kann spezifisch für ember-cli oder ember-qunit sein.

0

Ich war auf der Suche nach einer Lösung, ähnlich wie dieser für eine Weile, und sehen Sie fand keine Erwähnung meiner Lösung so dass ich dachte, ich würde hier sowieso posten. Es ist wirklich ganz einfach: Stellen Sie sicher, dass der Controller, auf den Sie verweisen, tatsächlich vorhanden ist.

// 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); 
}); 

Dieser Code würde an dieser Stelle einen Controller Referenz:

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