Testing 测试Ember Mixin-as控制器

Testing 测试Ember Mixin-as控制器,testing,ember.js,ember-cli,Testing,Ember.js,Ember Cli,我基本上有Mixin: export default Ember.Mixin.create({}}; 我是这样使用它的: export default Ember.Controller.extend(EditControllerMixin, {...}); const ctrl = Ember.Controller.extend(MyMixin, {...}).create(); ctrl.actions.someAction(); // assert if behaving as expe

我基本上有Mixin:

export default Ember.Mixin.create({}};
我是这样使用它的:

export default Ember.Controller.extend(EditControllerMixin, {...});
const ctrl = Ember.Controller.extend(MyMixin, {...}).create();
ctrl.actions.someAction();
// assert if behaving as expected
在应用中,一切都很好

但是,我想做的是编写如下测试,但不确定如何进行:

export default Ember.Controller.extend(EditControllerMixin, {...});
const ctrl = Ember.Controller.extend(MyMixin, {...}).create();
ctrl.actions.someAction();
// assert if behaving as expected
问题是,目前我在注入方面遇到了问题,因为
需要:[……]
没有生效,因为我正在动态创建控制器,所以我想没有余烬容器,这就是原因。另外,
this.get()
也不起作用。所以我基本上想创建动态控制器,并将其集成到Ember运行时中。希望有一些完整的例子


谢谢。

请不要那样做。在可能的情况下单独测试mixin(不尝试让需求正常工作)

要测试
需要
-创建控制器单元测试,并在测试
需要
中包括您需要的每个控制器

但是:

  • 控制器中的
    needs
    已弃用-
    Ember.inject.controller()
    是新语法
  • 在控制器之间创建依赖关系是不好的(而且很难测试——正如您所看到的那样)——为什么不创建一个易于测试的服务呢?即使包含在mixin中,服务也应易于测试:)