Javascript 使用Karma和Jasmine测试AngularJS服务

Javascript 使用Karma和Jasmine测试AngularJS服务,javascript,angularjs,jasmine,karma-jasmine,Javascript,Angularjs,Jasmine,Karma Jasmine,好吧,我花了将近3个小时来想办法。我一直在 ReferenceError:找不到变量:模块 当我尝试运行我的业力测试时。我已经阅读了其他相关问题,并正确地排序了文件,但我仍然得到了那个错误。虽然我认为我需要的模块函数来自angular.mock.js文件,但它也是在该文件中定义的,并且应该被引用 下面是一些重要的片段,可以更好地说明我的情况 karma.conf.js // list of files / patterns to load in the browser files:

好吧,我花了将近3个小时来想办法。我一直在

ReferenceError:找不到变量:模块

当我尝试运行我的业力测试时。我已经阅读了其他相关问题,并正确地排序了文件,但我仍然得到了那个错误。虽然我认为我需要的模块函数来自angular.mock.js文件,但它也是在该文件中定义的,并且应该被引用

下面是一些重要的片段,可以更好地说明我的情况

karma.conf.js

// list of files / patterns to load in the browser
      files: [
          'public/vendor/angular-1.2.0-rc2.js',
          'public/vendor/angular-test.js',
          'public/vendor/jasmine-helpers.js',
          'public/vendor/angular.mocks.js',
          'public/lib/**/*.js',
          'public/lib/*.js',
          'tests/*Spec.js'
      ],
规格文件

describe("In the Weather Service Module", function(){

    var YWS, scope, mockWeatherService;

    beforeEach(angular.mock.module('NPWeatherWidget'));

    beforeEach(inject(function($rootScope,_YahooWeatherService_){
        YWS = _YahooWeatherService_;
        scope = $rootScope;
        mockWeatherService = jasmine.createSpyObj('YahooWeatherService',['getwoeid','getData']);
        module(function($provide){
            $provide.value("YahooWeatherService",mockWeatherService);
        })
    }));

    //utility tests
    it("Object should be converted to query string", function(){
        console.log({name:"larry",age:20}.paramify());
        expect({name:"larry",age:20}.paramify()).toBe("name=larry&age=20");
    })
    it("should be converted to a query string", function(){
        expect(YWS).toBeDefined();
    });
    it("GetWoeID should return a bunch of objects with woeid included",function(done){
        expect({}).toBeDefined();
    });


});

任何形式的指向正确方向的指针都将非常受欢迎。

不要使用angular.mock.module'NPWeatherWidget',只需在beforeach方法中尝试module'NPWeatherWidget'。谢谢@adamK,事实证明,真正的问题是我在angular-mock.js和实际的angular文件之间使用了不兼容的版本。当我从code.angularjs.org找到angular 1.2.0-rc2的正确angular-mock.js文件时,问题就消失了