2015-01-10 4 views
0

moduleFor을 ember-cli 0.1.5 버전을 사용하여 새로 빌드 할 수 없습니다.ember-cli : moduleFor가 "unknown factory를 등록하려고 시도했습니다"오류와 함께 실패합니다.

moduleFor에 대한 documentation's example code (앱에 다른 변경)를 사용하여, 나는 ember test를 실행 한 후 다음과 같은 오류가 발생합니다 :

TypeError: Attempting to register an unknown factory: `route:index` 
    at Object.Container.register (http://localhost:4200/assets/vendor.js:14473:17) 
    at isolatedContainer (http://localhost:4200/assets/test-support.js:24:19) 
    at Object._callbacks.setup (http://localhost:4200/assets/test-support.js:150:23) 
    at Object.Test.setup (http://localhost:4200/assets/test-support.js:1063:31) 
    at http://localhost:4200/assets/test-support.js:1168:10 
    at process (http://localhost:4200/assets/test-support.js:887:24) 
    at http://localhost:4200/assets/test-support.js:476:5 

내가 추가 제외하고 응용 프로그램을 변경하지 않았 때문에 예제는 /tests/unit/index-test.js에있는 moduleFor 예제입니다. 이것은 ember-cli 버그 일 수 있습니다.

그것은 길처럼 보인다
// my-app/tests/unit/index-test.js 
import { test, moduleFor } from 'ember-qunit'; 

moduleFor('route:index', "Unit - IndexRoute", { 
    setup: function() {}, 
    teardown: function() {} 
}); 

test("it exists", function(){ 
    ok(this.subject()); 
}); 
+0

경로가 존재합니까? –

+0

예, 경로가 존재한다고 생각합니다. Index Route는 자동으로 생성 된 경로 중 하나입니다 (http://emberjs.com/guides/routing/defining-your-routes/#toc_initial-routes). – jake

+0

그래,하지만 테스트를 위해 자동 생성 된 경로 중 하나를 인스턴스화 할 때 어떻게 다른지 궁금하다. 'app/routes/index.js'에 경로를 추가하면 오류가 사라지나요? 거기에 경로가 없다면 무엇을 테스트하고 싶습니까? –

답변

3

자동 생성이로 라우팅 할 때입니다 : 참고로, 아래의 moduleFor 예를 들어 코드입니다. 그러나 명시 적으로 선언하지 않는 한 moduleFor()으로 단위 테스트를 실행하면 IndexRoute이 표시되지 않습니다. 당신은 당신이 테스트 할 수있는 IndexRoute을 원하는 경우에, 당신은 수동으로 정의해야합니다 :

import Ember from 'ember' 

IndexRoute = Ember.Route.extend(); 

export default IndexRoute 

당신이 정말로 단지에 의존하려는 경우에는이 있기 때문에 자동으로 생성 하나, 단위 테스트를 아무런 이유가없는 테스트 할 추가 기능.

LOG_ACTIVE_GENERATION을 켜면 상황이 언제 생성되는지 확인할 수 있습니다.

자동 생성 된 제품을 테스트하려면 라우터를 사용할 수있을 때 수락 테스트의 컨텍스트에서 테스트하십시오.

내 생각에 생성 된 것은 here입니다.

관련 문제