Javascript 如何在Karma/Mocha测试套件中测试Angular 1.5控制器?
我试图在我的摩卡测试中实例化我的控制器(使用Karma作为跑步者),以便测试一些控制器方法。我正在关注类似的事情 以下是我正在尝试的: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
// 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