2012-03-29 1 views
0

Ember Data를 사용하여 백본 응용 프로그램을 Ember 응용 프로그램으로 변환하려고합니다. 브라우저에서는 정상적으로 작동하지만 재스민 테스트 케이스는 통과하지 못합니다. 나는 재스민 테스트 케이스에 대한 기록을 만들려고 할 때이 오류를 얻을 :재 스민으로 테스트 할 때 EmberData로 레코드 만들기

TypeError: 'undefined' is not a function (evaluating 'type._create({ store: this })') in http://localhost:8888/spec/javascripts/generated/assets/application.js (line 26874) 

이 실제 코드입니다 오류 메시지 포인트 :

createRecord: function(type, properties, transaction) { 
    properties = properties || {}; 

    // Create a new instance of the model `type` and put it 
    // into the specified `transaction`. If no transaction is 
    // specified, the default transaction will be used. 
    // 
    // NOTE: A `transaction` is specified when the 
    // `transaction.createRecord` API is used. 
    var record = type._create({ 
     store: this // line 26874 
    }); 

실제 코드 테스트 케이스 실행 중입니다.

nutrient = App.Nutrient.createRecord({"name_min":"nut 1","female_31_50_min":7.5,"male_31_50_min":8.0,"created_at":"2011-10-10T01:31:53Z","female_51_70_min":8.5,"updated_at":"2011-10-12T12:28:35Z","male_70_plus_min":10.0,"female_19_30_min":6.5,"child_4_8_min":4.0,"male_19_30_min":7.0,"lactating_14_18_min":5.75,"infant_0_05_min":1.0,"female_70_plus_min":9.5,"pregnant_14_18_min":5.8,"infant_6_12_min":2.0,"id":1,"male_9_13_min":5.0,"child_1_3_min":3.0,"female_9_13_min":4.5,"female_14_18_min":5.5,"male_14_18_min":6.0,"lactating_31_50_min":7.75,"pregnant_31_50_min":7.8,"pregnant_19_30_min":6.8,"male_51_70_min":9.0,"lactating_19_30_min":6.75,"female_31_50_max":8.5,"male_31_50_max":9.0,"female_51_70_max":9.5,"male_70_plus_max":11.0,"female_19_30_max":7.5,"child_4_8_max":5.0,"male_19_30_max":8.0,"lactating_14_18_max":6.75,"infant_0_05_max":2.0,"female_70_plus_max":10.5,"pregnant_14_18_max":6.8,"infant_6_12_max":3.0,"male_9_13_max":6.0,"child_1_3_max":4.0,"female_9_13_max":5.5,"female_14_18_max":6.5,"male_14_18_max":7.0,"lactating_31_50_max":8.75,"pregnant_31_50_max":9.8,"pregnant_19_30_max":7.8,"male_51_70_max":10.0,"lactating_19_30_max":7.75}) 

person = new App.Person.createRecord({age: 0.25}) 

expect(nutrient.requiredNutrientForPerson(person)).toEqual({min_amount: 1.0, max_amount: 2.0}) 

모든 아이디어가 좋을 것 같습니다.

답변

2

죄송합니다. 나는 new 키워드를 제거하기 위해 필요하고 그 통지를하지 않았다, 제대로

+0

아 일

person = new App.Person.createRecord({age: 0.25}) 

,하지만 지금은 오류가 주어진 이해하지 : 문제는이 라인이다. 희망은 문제를 실행 루프에 대한 언급과 혼동하지 않기를 바랍니다. 지금 엠버 데이터를 사용하는 사람들을 만나서 반갑습니다. 곧 다시 살펴 봐야 할 것입니다. –

2

일반적으로 테스트에 문제가있는 경우 브라우저에서 경험하지 못하는 것은 테스트가 Ember 실행 루프 외부에서 실행되기 때문입니다.

expect() 전에 호출하여 동기화를 시도하십시오. 또는 익명 fn의 바인딩과 관련된 코드를 Ember.run(function() { }) 안에 넣습니다.

적용 범위가 매우 견고하기 때문에 다른 테스트 예에 대해서는 엠버 및 엠버 데이터 소스를 확인하십시오.

그렇다고해서 나는 엠버 데이터 전문가가 아니므로, 이것이 당신이 겪고있는 문제인지 확실하지 않습니다.

관련 문제