2016-08-22 2 views
0

나는 엠버 누브입니다. 나는 Ember 튜토리얼의 단계를 되돌아보고 인증 흐름으로 부트 스트랩을 추가하기위한 매우 우회적 인 길을 택했다. 길을 따라 어딘가에 신청 경로를 추가했습니다. 그것은 폭격입니다응용 프로그램 경로 실패에 대한 Ember 단위 테스트

import Ember from 'ember'; 
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin'; 

export default Ember.Route.extend(ApplicationRouteMixin); 

: 같은

import { moduleFor, test } from 'ember-qunit'; 

moduleFor('route:application', 'Unit | Route | application', { 
    // Specify the other units that are required for this test. 
    // needs: ['controller:foo'] 
}); 

test('it exists', function(assert) { 
    let route = this.subject(); 
    assert.ok(route); 
}); 

응용 프로그램/경로/application.js 같습니다 생성기는이했다. 나는 어떤 슬러 슁을했으나 아래의 스택 추적에서 나의 비애의 원인을 발견하기에는 너무 새롭다. 나는 물론 오류를 날려 버릴 수는 있지만, 나는 똑같은 실수를 다시하게 될 것이라는 느낌이 들며 시험 경우를 약화시키지 않을 것이다. 누구든지 내 응용 프로그램 test.js에서 누락 된 부분을 알고 있습니까?

Unit | Route | application: it exists (1, 0, 1)Rerun39 ms 
Died on test #1  at testWrapper (http://localhost:7357/assets/test-support.js:7162:11) 
    at test (http://localhost:7357/assets/test-support.js:7176:39) 
    at Module.callback (http://localhost:7357/assets/tests.js:367:24) 
    at Module.exports (http://localhost:7357/assets/vendor.js:132:32) 
    at requireModule (http://localhost:7357/assets/vendor.js:32:18) 
    at Object.TestLoader.require (http://localhost:7357/assets/test-support.js:6942:7) 
    at Object.loadModules (http://localhost:7357/assets/test-support.js:6934:14): Cannot read property 'on' of [email protected] 22 ms 
Source:  
TypeError: Cannot read property 'on' of undefined 
    at http://localhost:7357/assets/vendor.js:151286:29 
    at Array.forEach (native) 
    at Class._subscribeToSessionEvents (http://localhost:7357/assets/vendor.js:151280:131) 
    at Class.init (http://localhost:7357/assets/vendor.js:151273:12) 
    at Class.superWrapper [as init] (http://localhost:7357/assets/vendor.js:35502:22) 
    at new Class (http://localhost:7357/assets/vendor.js:48214:14) 
    at Function.create (http://localhost:7357/assets/vendor.js:48485:14) 
    at Object.defaultSubject (http://localhost:7357/assets/test-support.js:8362:22) 
    at Object.context.(anonymous function) [as subject] (http://localhost:7357/assets/test-support.js:8394:37) 
    at Object.<anonymous> (http://localhost:7357/assets/tests.js:368:22) 
Source: at testWrapper (http://localhost:7357/assets/test-support.js:7162:11) at test (http://localhost:7357/assets/test-support.js:7176:39) at Module.callback (http://localhost:7357/assets/tests.js:367:24) at Module.exports (http://localhost:7357/assets/vendor.js:132:32) at requireModule (http://localhost:7357/assets/vendor.js:32:18) at Object.TestLoader.require (http://localhost:7357/assets/test-support.js:6942:7) at Object.loadModules (http://localhost:7357/assets/test-support.js:6934:14) 
+0

이미 신청 경로에 코드가 있습니까? – rmmmp

+0

@MikkoPaderes, 내 application.js 경로는 << 위의 수정 >>처럼 보입니다. –

+0

'needs : [ 'service : session'] ' – rmmmp

답변

0

응용 프로그램 경로가 무엇을하고 있는지 모르고, 내가해야하지만, 여기 가능성의 커플 수 없습니다

에 jQuery를 호출하는 코드가 객체에,이 것 같습니다 그 정의되지 않았습니다.

당신은 당신의 시험을 아직 사용할 수없는 제 3 자 라이브러리를 가져온 수

(같은 당신은 당신의 index.html을에 스크립트를 포함 한 경우), 또는 환경 관련 자산 (https://guides.emberjs.com/v2.7.0/addons-and-dependencies/managing-dependencies/#toc_environment-specific-assets)

을 가질 수

"needs"블록에 종속성을 포함해야 할 수도 있습니다. 단위 테스트를 위해 needs 블록에 ember 데이터 객체, 서비스 및 컨트롤러와 같이 컨테이너에서 일반적으로로드되는 사항을 지정해야합니다.

+0

감사합니다. 나는 OP를 편집하여 경로를 포함 시켰습니다. 생성 된 테스트에서 주석 처리 된 "needs"블록을보고 구문 예제를 볼 수 있지만 정확히 필요한 부분을 잃어 버렸습니다. 간단한 인증 자료를 추가했습니다. 어쩌면 거기에 "가난한"것일까 요? –

+0

예. "needs"블록은 엠버 컨테이너에서로드 된 것들을 테스트하도록 지정합니다. 예를 들어, 테스트중인 클래스에 서비스 (간단한 인증과 함께있을 수도 있음)가 삽입 된 경우 필요에 따라 "service : "을 지정합니다. 그러면 요청시 해당 서비스를 제공하도록 테스트 프레임 워크에 알립니다. ember-qunit에 대한 설명서에는 가이드로 다시 피드백해야 할 세부 정보가 있습니다. https://github.com/rwjblue/ember-qunit/blob/master/README.md –

관련 문제