Ember海市蜃楼服务器未在测试中定义

时间:2016-07-27 20:00:00

标签: ember.js ember-cli ember-cli-mirage

我正在尝试将ember-cli-mirage灯具整合到一些测试中。我按照这里的文档:ember fixtures

问题:未定义服务器。错误信息: 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
    }

1 个答案:

答案 0 :(得分:4)

Mirage在初始化程序中启动。由于初始化程序仅在完整的Ember应用程序启动时运行,因此默认情况下Mirage服务器仅在验收测试中可用。

要在集成或单元测试中使用Mirage,请按照the docs on manually starting your Mirage server进行操作。目前,文档说这个:

  

要在单元测试或集成测试期间运行Mirage服务器,请首先创建一个帮助程序:

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

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

然后,将以下内容添加到您希望Mirage初始化的任何测试中:

// 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);
   }
 });