如何在angular中测试控制器方法
How to test a controller method in angular?
我正在尝试在我的angular应用程序中测试控制器。每当我调用$controller
方法时,我都会返回一个空对象。
相关的测试
describe("myCtrl", function() {
beforeEach(module("myMod"));
var myCtrl, scope;
beforeEach(inject(function($controller, $rootScope) {
scope = $rootScope.$new();
myCtrl = $controller('myCtrl', {$scope: scope});
}));
it("$scope.compute", function() {
expect(myCtrl.compute(1,1,1)).toBe(1);
});
});
控制器相关部件:
.controller('myCtrl', ["$scope","serviceA", "serviceB", function($scope, serviceA, serviceB){
$scope.compute = function compute(a, b, c) {
return serviceA.calc(a, b, c);
};
}])
每当我运行我的测试,我得到一个错误,undefined is not a function
.
如果在我调用方法之前我console.log(JSON.stringify(myCtrl))
,它显示myCtrl
是一个空对象({}
)。
我相信我的问题是调用$controller
,或者也许我需要设置我的范围不同。
总结:我如何做一个单元测试,以便调用一个方法在我的控制器?
函数/方法不在控制器中,而是在$scope
中,所以它应该是:
it("$scope.compute", function() {
expect(scope.compute(1,1,1)).toBe(1);
});
相关文章:
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何对具有多个$resource调用的角度控制器进行单元测试
- 通过因果报应测试管理angularjs控制器初始化
- 将范围添加到角度种子默认视图控制器时,测试套件现在失败
- 如何在控制器中测试功能
- 如何测试从promise对象获取数据的控制器
- 角度单元测试控制器
- 角度单元测试:如何在没有范围的情况下测试控制器属性
- Angularjs 测试控制器内部的异步行为
- Angularjs 单元测试控制器 orderBy.
- 单元测试控制器,在控制器中具有 $state.go 方法
- 依赖于 AngularJS 中表单验证的单元测试控制器
- 我们如何模拟我们的服务来测试控制器
- 单元测试控制器在NodeJS中发出外部HTTP请求的功能
- 如何在angular中测试控制器方法
- 如何在AngularJS中测试控制器指令
- 测试控制器中的私有方法和sidewaffle提供的模板
- 单元测试控制器中的$http解析
- 如何在angular中测试控制器,该控制器从angular服务获取数据
- 单元测试控制器与 AngularJS 中的表单一样