dimanche 6 décembre 2015

EmberJS Service Injection for controllers before Unit Tests (Ember QUnit)

Specs:

  • Ember version: 1.13.8
  • node: 0.10.33
  • npm: 2.13.4

I have

import Alias from "../../../services/alias";
....

moduleFor("controller:test", "Controller: test", {
  integration: true,

  beforeEach: function() {
    this.register('service:alias', Alias, {singleton: true});
    this.inject.service('alias', { as: 'alias' });
    this.advanceReadiness();
  },
});
...

test('Alias Alias Alias ', function(assert) {
  var controller = this.subject();

  //sample function
  controller.send("test");
  assert.equal(true, controller.alias.get("alias"), "alias should be true");
});
(Using 'alias' as example because I'm not allow to show actual code)

I've tried to initialize the service but during Ember Qunit tests, controllers do not have the services injected to them.

I've tried putting the injection in: init() instead of beforeEach, doesn't work either...

How do I inject it during unit tests?

I put break points in the debugger to see if my controllers have the service, it doesn't during tests. It's fine on normal ember serve, however.




Aucun commentaire:

Enregistrer un commentaire