2014-09-06 2 views
5

ObjectController의 컨텍스트 또는 모든 단위 테스트 내에서 내 Ember 테스트에 store을 사용할 수없는 것으로 보입니다. 내 단위 테스트는 :Ember 테스트 : null의 'createRecord'속성을 읽을 수 없습니다.

`import {test, moduleFor} from "ember-qunit"` 
`import DS from "ember-data"` 

moduleFor "controller:register", "RegisterController", { 
} 

test "store is working", -> 
    expect 1 
    controller = @subject() 
    Ember.run(-> 
     sampleUser = controller.get("store").createRecord("user", { 
      username: "myuser" 
      password: "otherpassword" 
     }) 
     ok(sampleUser instanceof DS.Model) 
    ) 

이 시험은 줄 것이다 :

는 (응용 프로그램/테스트/단위/컨트롤러/등록-test.js 평가에서 시험 ( http://localhost:4200/assets/vendor.js:73539:13) 에서 테스트 # 1에 사망 : 19 : 5) requireModule에서 http://localhost:4200/assets/test-loader.js:14:29에서 ( http://localhost:4200/assets/vendor.js:54:29) : 널 (null)의 'createRecord'속성을 읽을 수 없습니다 것은

사람이 w를 설명 할 수 내 테스트 내에서 또는 컨트롤러 자체 (테스트 실행 중)에서 DS 기능에 액세스 할 수 없습니까?

+0

수동으로 저장소의 인스턴스를 생성 한 다음 컨트롤러에 (테스트 중에) 삽입하여 추가하면 예상대로 작동하는지 확인할 수 있습니까? –

답변

1

ember-qunit은 저장소에 저장소를 삽입하지 않으므로 단위 테스트를위한 것이지 통합 테스트는 아닙니다. Ember Data의 상점은 해당 컨트롤러의 범위 밖에 있습니다.

+0

그래, 그럼 어떻게 수정해야합니까? – user1429980

+0

여기에서 테스트하려는 것은 무엇입니까? 엠버 데이터? Ember Data의 프레임 워크 대신 단위 테스트를 추가 할 것입니다. jQuery 테스트와 동일합니다. – Kingpin2k

+0

https://github.com/emberjs/data/blob/master/packages/ember-data/tests/unit/store/create_record_test.js – Kingpin2k

0

단위 테스트의 "needs"섹션에 ember 데이터 저장소를 추가 할 수 있습니다. 또한 지금처럼 "필요"섹션에 생성되는 어떤 모델을 추가해야합니다

needs: ['service:store', 'model:user'] 

이 객체 (컨트롤러, 구성 요소, 경로 등)에 저장소의 실제 인스턴스를 주입합니다 테스트중인 .