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

in ember, how do I unit test controller action that sends another action?

我有以下控制器

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

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

指定 target 您的主题(控制器)并让您的 targetactions 对象中声明 actionName

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.