在ember中,我如何对发送另一个动作的控制器动作进行单元测试?

时间:2016-08-13 00:19:30

标签: unit-testing ember.js ember-qunit

我有以下控制器

MyController = Ember.Controller.extend({ 
  actions: {
    doSomething: function(param1, param2) {
      this.send('actionName', param1, param2);
    }
  }
});

有没有办法编写单元测试来验证此控制器是否会冒泡这个动作?

1 个答案:

答案 0 :(得分:1)

指定主题(控制器)的target并让targetactionName对象中声明actions

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

moduleFor('controller:my-controller');

test('it fires an action', function(assert) {
  let controller = this.subject();

  controller.set('target', Ember.Controller.extend({
    actions: {
        actionName: () => assert.ok(true, 'Action bubbled!')
    }
  }).create());

  controller.send('doSomething');
});

Working demo.