Ember.js &引用;试图注册未知工厂“;模型试验

Ember.js &引用;试图注册未知工厂“;模型试验,ember.js,ember-data,ember-cli,ember-qunit,Ember.js,Ember Data,Ember Cli,Ember Qunit,我在ember cli应用程序中有以下型号: var PuzzleRound = DS.Model.extend({ year: DS.attr('number') }); var Puzzle = DS.Model.extend({ puzzleRounds: DS.hasMany('puzzleRound', {async: true}) }); 下面是我在tests/unit/models/puzzle test.js中的测试: import { moduleF

我在ember cli应用程序中有以下型号:

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

var Puzzle = DS.Model.extend({
    puzzleRounds: DS.hasMany('puzzleRound', {async: true})
});
下面是我在
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);               
});
我在运行余烬测试时遇到此错误:

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

我使用的是ember cli 0.1.1、ember.js 1.7.0、ember Data 1.0.0-beta.11。有人有什么我可以尝试修复的吗?

我刚刚用ember cli 0.0.44尝试了这段代码,得到了与您相同的错误

我将
puzzround
模型路径的两个引用重命名为
puzzround
,然后您的测试通过了。因此:

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


我知道连字符样式比camelCase样式更受欢迎,但我不确定这是什么时候强制的。此要求可能特定于ember cli或ember qunit。

我一直在寻找类似于此的解决方案,但没有看到任何关于我的解决方案的提及,因此我想无论如何我都会在这里发布。其实很简单:确保你引用的控制器确实在那里

// 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); 
});
此代码将引用此位置的控制器:

myember应用程序/app/controllers/index/bar.js

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