当我在mixin的单元测试中执行Ember.Component.Create()时,我收到此错误。 我正在将ember从1.13升级到2.10,这个测试在1.13中运行良好,但在2.10中我得到了这个错误。看起来在2.10中,ember组件init需要一个app实例。
p->y
我尝试过几件事:
在setup和destroy中启动app(),类似于集成testi 纳克
要覆盖init,但init始终需要调用_super()
尝试在创建应用程序的集成测试环境中执行
答案 0 :(得分:1)
我不知道单元测试组件是否需要Ember.Component.Create()
在1.13;但是你现在不应该在组件的单元测试过程中自己创建组件;至少这是我在与Ember打交道时学到的。
您应该使用moduleForComponent
中的ember-qunit
unit: true
参数,并在测试方法中使用this.subject();
简单地获取该组件。
我为您创建了一个twiddle来说明使用mixin对组件进行单元测试。我希望这会有所帮助。
答案 1 :(得分:1)
我尝试renderer: this.render
或其他选项,但没有任何效果,最后基于我得到的线索here
我做了renderer: {}
并且效果很好。
链接中还有其他好的解决方案,但在我的场景中不需要它,因为我没有渲染任何内容。