angularjs - 参数 'appCtrl' 不是函数,未定义

标签 angularjs karma-runner karma-jasmine

我正在使用最新的 Karma Angular.js 单元测试。

我遇到错误:“参数“appCtrl”不是函数,未定义”。

appCtrl.js:

var app = angular.module('app', []);

app.controller('appCtrl', function ($scope) {
    $scope.count = 5;

    $scope.incrementCount = function() {
        $scope.count = $scope.count + 1;
    };

});

appCtrl.spec.js:

describe('Controller test', function(){

    var appCtrl, $scope;

    beforeEach(module('app'));

    beforeEach(inject(function($controller, $rootScope) {
        $scope = $rootScope.$new();
        appCtrl = $controller('appCtrl', {
            $scope: $scope
        });
    }));

    it('should have appCtrl controller toBeDefined', function() {
        expect(appCtrl).toBeDefined();
    });

    iit('should init counter value', function() {
        expect($scope.count).toBeDefined();
        expect($scope.count).toBe(5);

    });

    it('should change counter value', function() {
        $scope.incrementCount();
        expect($scope.count).toBe(6);
    });

});

我做错了什么?

最佳答案

确保您具有 Angular-Mocks 依赖项,并且在 should init 计数器值中存在拼写错误“itt”应该是“it”。

希望这有帮助。

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

相关文章:

angularjs - Fuse Angular APP 注入(inject)模块时的 karma+jasmine 测试问题

AngularJS + Jasmine 测试脚本失败 fn 不起作用

angularjs - Angular UI 网格 onRegisterApi 函数的 Jasmine 测试用例

angular - 测试包含 setTimeout() 的函数

jquery - 显示 TableView 结构

AngularJS 不区分大小写绑定(bind)到静态选择下拉菜单

javascript - 未捕获的ReferenceError : app is not defined in controller,模块和路由

javascript - Squire 正在打破其他测试

Angular 单元测试 : can't change the reporter of karma

javascript - Angularjs 过滤器回调