测试Ember Mixin - 作为控制器

时间:2017-06-05 15:34:51

标签: 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 expected

问题是目前我在注射方面有问题,因为needs: [...]没有生效,因为我正在动态创建控制器,所以我想没有Ember容器存在,这就是原因。 this.get()也不起作用。所以我基本上想要创建动态控制器并将其集成到Ember运行时。希望得到一些完整的例子。

感谢。

1 个答案:

答案 0 :(得分:0)

请不要那样做。根据具体情况分别测试混合(不试图让需要工作)。

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

可是:

    不推荐使用控制器中的
  • needs - Ember.inject.controller()是新语法。
  • 在控制器之间创建依赖关系很糟糕(很难测试 - 正如您所见) - 为什么不创建一个易于测试的服务?即使包含在mixin中,服务也应该很容易测试:)。