2016-07-27 1 views
0

일부 테스트에 ember-cli-mirage 픽스처를 통합하려고합니다. 여기에 설명서를 따라갔습니다 : ember fixturesEmber 신기루 서버가 테스트에 정의되어 있지 않습니다.

문제 : 서버가 정의되지 않았습니다. 오류 메시지 : ReferenceError: server is not defined

모델 test.js는 :

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

moduleForModel('network', 'Unit | Model | network', { 
    needs: [] 
}); 

test('it exists', function(assert) { 
    server.loadFixtures('networks'); //no defined 

andThen(function() { 
    let net1 = networks.first(); 
}); 
    assert.ok(true); 
}); 

나는 또한 설정이 true로 설정되어 있는지 확인했습니다.

ENV['ember-cli-mirage'] = { 
     enabled: true 
    } 

답변

3

미라지가 초기화 프로그램에서 시작됩니다. 이니셜 라이저는 전체 Ember 앱이 부팅 될 때만 실행되기 때문에 기본적으로 Mirage 서버는 수락 테스트에서만 사용할 수 있습니다.

통합 또는 단위 테스트에서 Mirage를 사용하려면 the docs on manually starting your Mirage server을 따르십시오. 현재 문서는이 말 : 당신은 미라지 초기화하려는 테스트에 다음을 추가, 그리고

// tests/helpers/start-mirage.js 
import mirageInitializer from '../../initializers/ember-cli-mirage'; 

export default function startMirage(container) { 
    mirageInitializer.initialize(container); 
} 

:

먼저 만들고, 단위 또는 통합 테스트 중에 도우미를 당신의 신기루 서버를 실행하려면 :

// tests/integration/components/your-test.js 
import startMirage from '../../../helpers/start-mirage'; 

moduleForComponent('your-component', 'Integration | Component | your component', { 
    integration: true, 
    setup: function() { 
    startMirage(this.container); 
    } 
});