Javascript 如何在Karma/Mocha测试套件中测试Angular 1.5控制器?

Javascript 如何在Karma/Mocha测试套件中测试Angular 1.5控制器?,javascript,angularjs,mocha.js,karma-runner,Javascript,Angularjs,Mocha.js,Karma Runner,我试图在我的摩卡测试中实例化我的控制器(使用Karma作为跑步者),以便测试一些控制器方法。我正在关注类似的事情 以下是我正在尝试的: // controller.js // also, the component that uses this controller // declares some bindings, like "someData: '<'" export default class SomeController { // notice the injection

我试图在我的摩卡测试中实例化我的控制器(使用Karma作为跑步者),以便测试一些控制器方法。我正在关注类似的事情

以下是我正在尝试的:

// controller.js

// also, the component that uses this controller
// declares some bindings, like "someData: '<'"

export default class SomeController {
  // notice the injection
  constructor($timeout) {

    // uses ng-annotate
    'ngInject';

  }
}
因此,当我执行
newcontroller()
时,它希望将
$timeout
作为参数传递给构造函数(它应该是依赖项注入),而我不知道如何传递
someData
绑定

如果我改为尝试
$componentController
(按照的建议),我会得到以下奇怪的错误:

compileProvider.preAssignBindingsEnabled is not a function
因此,我查找了这个方法
$compileProvider.preAssignBindingsEnabled
,并试图在我的模块配置中将其设置为
true
false
,但它仍然抛出声明它不是函数。所以我走到了死胡同


关于如何实例化控制器以将其用于测试,您有什么想法吗?您使用的是哪个版本的angular?研究了同样的问题,结果发现我有1.5.7和1.5.10的角度模拟。 将angular Mock设置为1.5.7(angular的同一版本)修复了该问题。 preAssignBindingsEnabled已添加到1.5.10中
例如:

您使用的是哪个版本的angular?研究了同样的问题,结果发现我有1.5.7和1.5.10的角度模拟。 将angular Mock设置为1.5.7(angular的同一版本)修复了该问题。 preAssignBindingsEnabled已添加到1.5.10中
例如:

你将不得不降级到角度1.5.5。高于该值的任何值都会出现“TypeError:$compileProvider.preAssignBindingsEnabled不是函数”错误


还要确保您使用的angular Mock版本相同(1.5.5)。

您将不得不降级到angular 1.5.5。高于该值的任何值都会出现“TypeError:$compileProvider.preAssignBindingsEnabled不是函数”错误


另外,请确保您所使用的角度模拟是同一版本(1.5.5)。

有趣。谢谢你的回答,我会看看这是不是问题。最后,是问题吗?有趣。谢谢你的回答,我会看看这是否是问题所在。最后,是问题所在吗?
compileProvider.preAssignBindingsEnabled is not a function