3

我正在查看 ember 测试指南,它说当您想要删除服务时执行以下操作

import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
import Ember from 'ember';

//Stub location service
const locationStub = Ember.Service.extend({
  city: 'New York',
  country: 'USA',
  currentLocation: {
    x: 1234,
    y: 5678
  },

  getCurrentCity() {
    return this.get('city');
  },
  getCurrentCountry() {
    return this.get('country');
  }
});

moduleForComponent('location-indicator', 'Integration | Component | location indicator', {
  integration: true,

  beforeEach: function () {
    this.register('service:location-service', locationStub);
    this.inject.service('location-service', { as: 'location' });
  }
});

问题是我Uncaught TypeError: this.register is not a function在使用此代码时得到了一个。所以我假设之前的每个this.register('service:location-service', locationStub);都是导致问题的原因。

任何人都知道我该如何解决这个问题,或者有什么更合适的方法来删除服务?这段代码目前在 Ember 的文档中。

4

1 回答 1

0

看起来 this.register 仅存在于更高版本的 ember-qunit 中,您需要确保您运行的是 ember-qunit >= 0.4.13。

this.register 仅存在于 ember-qunit >= 0.4.13。

http://discuss.emberjs.com/t/service-injection-in-component-integration-tests/8956/3

于 2015-12-09T04:44:01.177 回答