测试angularjs控制器时 - 无法找到变量:module / inject by chutzpah

时间:2014-07-25 12:10:11

标签: javascript angularjs visual-studio-2012 jasmine chutzpah

我有angularJs控制器

angular.module('App.ctrl.guests', [])
    .controller('guestsController', ['$scope', '$http', '$location', '$timeout', 'guestsService', function ($scope, $http, $location, $timeout, guestsService) {
        $scope.tiles = [];
    }])

和茉莉花测试

/// <reference path="~/Scripts/angular.js" />
/// <reference path="../../ProjectWeb/Scripts/app/guests/guestsCtrl.js" />
/// <reference path="~/Scripts/angular-mocks.js" />
/// <reference path="~/Scripts/jasmine.js" />
'use strict';
describe('App.ctrl.guests', function () {
    var scope, controller;
    beforeEach(function () {
        module('App.ctrl.guests')
    });
    beforeEach(inject(function ($rootScope, $controller) {
        scope = $rootScope.$new();
        controller = $controller('guestsController', {
            $scope: scope
        });
    }));

    it('should have empty array', function () {
        expect(scope.tiles).toBe([]);
    });
})

每次我在Visual studio chutzpah中运行时都会得到:

  

ReferenceError:找不到变量:module in   文件:///.../JasmineTests/guestsControllerTest.js   (第5行)

     

ReferenceError:找不到变量:inject in   file:///.../JasmineTests/guestsControllerTest.js(第12行)

这是一个问题,引用angular.js和jasmine不知道什么是module / inject关键字?这是我第一次使用js测试:/

2 个答案:

答案 0 :(得分:4)

我在this文章中找到了关于如何拖放JavaScript文件以进行测试和纠正路径的文章。

答案 1 :(得分:0)

几分钟前我在TFS构建服务器上遇到了这个确切的异常。事实证明,当“复制到输出目录”时,也会出现此异常。 “属性”对话框中的选项设置为“不要复制&#39;”之外的其他选项。在我们的情况下,从\ bin文件夹测试了几个文件,这导致了错误的引用路径。