gpt4 book ai didi

javascript - Jasmine, 'Controller' 不是函数,未定义

转载 作者:行者123 更新时间:2023-12-03 07:32:19 25 4
gpt4 key购买 nike

我一直在尝试创建一个示例单元测试,但它一直给我一个错误“参数'CalcController'不是一个函数,未定义”。

我已经看到了所有具有相同标题的问题,并在 stackoverflow 中尝试了他们的解决方案,但似乎它们对我不起作用。

calc.controller.js

(function () {
'use strict';

angular
.module('app.calc')
.controller('CalcController', CalcController);

/** @ngInject */
function CalcController($scope) {

$scope.password = '';
$scope.grade = function () {
var size = $scope.password.length;
if (size > 8) {
$scope.strength = 'strong';
} else if (size > 3) {
$scope.strength = 'medium';
} else {
$scope.strength = 'weak';
}
}
}
});

calc.module.js

(function () {
'use strict';

angular
.module('app.calc', [])
.config(config);

/** @ngInject */
function config() {
}
})();

calc.specs.js

describe('CalcController', function() {
beforeEach(module('fuse'));
beforeEach(module('app.calc'));

var $controller;

beforeEach(inject(function(_$controller_){
$controller = _$controller_;
}));

describe('$scope.grade', function() {
it('sets the strength to "strong" if the password length is >8 chars', function() {
var $scope = {};
var controller = $controller('CalcController', { $scope: $scope });
$scope.password = 'longerthaneightchars';
$scope.grade();
expect($scope.strength).toEqual('strong');
});
});

describe('test', function() {
it('should work', function() {
expect(true).toBe(true);
});
});
});

如果您注意到示例函数是为密码输入编写的,这是因为我从同一项目的工作测试脚本中复制了代码。但显然它的工作方式并不相同。

干杯

最佳答案

calc.controller.js 的自调用函数 (function(){...}); 缺少 ()最后这就是为什么它找不到 Controller 。

关于javascript - Jasmine, 'Controller' 不是函数,未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35765350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com