正确初始化$ scope - 有错误:"预期未定义定义"

时间:2016-03-29 08:22:58

标签: javascript angularjs unit-testing jasmine karma-jasmine

我需要帮助,一直在寻找和思考几个小时,但没有找到一个好的解决方案。我遇到错误"Expected undefined to be defined",当我在我的It()函数中调用$ scope时会出现错误。

Spec.js

describe("C0001Controller", function(){



var $scope,
$rootScope,
$injector,
$controller,
$httpBackend,
$loading,
C0001Controller;


describe("initialize controllers",function(){

    beforeEach(function(){
        angular.module('app.c0001App');
    })



    beforeEach(inject(function(_$rootScope_, _$injector_, _$controller_, _$httpBackend_, _$loading_)
    {
        $rootScope = _$rootScope_;
        $injector = _$injector_;
        $controller = _$controller_;
        $httpBackend = _$httpBackend_;
        $loading = _$loading_;
        $scope = $rootScope;
        C0001Controller = $controller('C0001Controller', {
            $scope: $scope,
            $loading :  $loading

        });

    }));
});
    it("should use the user ",function(){
    var languages = [{id: "en", name: "English"}, {id: "jp", name: "Japanese"}];
    expect(languages).toBeDefined();

    it("should read if there are languages used", function(){
    expect($scope).toBeDefined();

});
        describe("checking connection to module and controller", function(){

    it("should be connected to module", function(){
        expect("app.c0001App.C0001Controller").toBeDefined();
    });

    it("contains C0001Spec Spec", function(){
        expect(true).toBe(true);
    });

    it("should be equal to user", function(){
        var user = {};
        var c0001Data =  user;
        expect(c0001Data).toBe(user);
    });

});
});

我在想是否我在 karma.conf.js 文件中执行的格式有错误。

// list of files / patterns to load in the browser
files: [

'node_modules/angular/angular.js',
'node_modules/angular-mocks/angular-mocks.js',

  'app/*.js',
  'tests/*.js'
],

这是 Controller.js

angular.module('app.c0001App', [
'ui.router'
])
 .config(function($stateProvider) {
  $stateProvider.state('/c0001', {
  url         : '/c0001'
, templateUrl : 'pages/C0001.html'
, data        : {
                 pageTitle: 'LOGIN'
                }
  });
   })
.controller('C0001Controller', function ($rootScope, $scope, $http, $window,        $location, $loading) {

var promise = $http.get('changeLanguage.do?lang=en');
promise.success(function(data, status, headers, config) {
//some codes here

提前谢谢。

0 个答案:

没有答案