1

在我使用ui.bootstrap實現我的網頁上分頁控制器,安裝ui.bootstrap後,我得到了下面我單位錯誤信息測試ui.bootstrap打破我的單元測試意外的結果錯誤?

After using ui.bootstrap I got following error message

這裏是我的測試文件:

'use strict'; 

describe('LoginCtrl', function() { 

    beforeEach(module('taxihomeFrontendApp')); 

    var LoginCtrl, 
    scope; 

    var $httpBackend = {}; 

    beforeEach(inject(function ($controller, $rootScope, _$httpBackend_) { 
    scope = $rootScope.$new(); 
    LoginCtrl = $controller('LoginCtrl', { 
     $scope: scope 
    }); 
    $httpBackend = _$httpBackend_; 
    })); 

    afterEach(function() { 
    $httpBackend.verifyNoOutstandingExpectation(); 
    $httpBackend.verifyNoOutstandingRequest(); 
    }); 

    it('should fail authentication', function(){ 
    var credentials = {'username':'badDriver', 'password':'1234'}; 
    $httpBackend. 
     whenPOST('http://localhost:3000/login', credentials). 
     respond(403, {error: 'not allowed'}); 
    scope.credentials = { 
     username: 'badDriver', 
     password: '1234' 
    }; 
    scope.login(scope.credentials); 
    $httpBackend.flush(); 
    expect(scope.error).toEqual('Something went wrong not allowed'); 
    }); 

}); 

我噶配置

// Karma configuration 
// http://karma-runner.github.io/0.12/config/configuration-file.html 
// Generated on 2015-04-23 using 
// generator-karma 0.9.0 

module.exports = function(config) { 
    'use strict'; 

    config.set({ 
    // enable/disable watching file and executing tests whenever any file changes 
    autoWatch: true, 

    // base path, that will be used to resolve files and exclude 
    basePath: '../', 

    // testing framework to use (jasmine/mocha/qunit/...) 
    frameworks: ['jasmine'], 

    // list of files/patterns to load in the browser 
    files: [ 
     // bower:js 
     'bower_components/jquery/dist/jquery.js', 
     'bower_components/angular/angular.js', 
     'bower_components/angular-bootstrap/ui-bootstrap-tpls.js', 
     'bower_components/bootstrap/dist/js/bootstrap.js', 
     'bower_components/angular-animate/angular-animate.js', 
     'bower_components/angular-cookies/angular-cookies.js', 
     'bower_components/angular-resource/angular-resource.js', 
     'bower_components/angular-route/angular-route.js', 
     'bower_components/angular-sanitize/angular-sanitize.js', 
     'bower_components/angular-touch/angular-touch.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     // endbower 
     'app/scripts/**/*.js', 
     'test/mock/**/*.js', 
     'test/spec/**/*.js' 
    ], 

    // list of files/patterns to exclude 
    exclude: [ 
    ], 

    // web server port 
    port: 8080, 

    // Start these browsers, currently available: 
    // - Chrome 
    // - ChromeCanary 
    // - Firefox 
    // - Opera 
    // - Safari (only Mac) 
    // - PhantomJS 
    // - IE (only Windows) 
    browsers: [ 
     'PhantomJS' 
    ], 

    // Which plugins to enable 
    plugins: [ 
     'karma-phantomjs-launcher', 
     'karma-jasmine' 
    ], 

    // Continuous Integration mode 
    // if true, it capture browsers, run tests and exit 
    singleRun: false, 

    colors: true, 

    // level of logging 
    // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 
    logLevel: config.LOG_INFO, 

    // Uncomment the following lines if you are using grunt's server to run the tests 
    // proxies: { 
    // '/': 'http://localhost:9000/' 
    // }, 
    // URL root prevent conflicts with the site root 
    // urlRoot: '_karma_' 
    }); 
}; 

我用喲角腳手架項目

回答

1

您還需要模擬的模板文件GET請求:

$httpBackend.expectGET('views/login.html').respond('<div>something</div>'); 

放入beforeEachit部分。

+0

我接收到以下錯誤消息: 錯誤:意外請求:POST HTTP://本地主機:3000預期/登錄 GET視圖/ login.html的 –

+0

由於我固定它$ httpBackend.expectGET代替我用$ httpBackend.whenGET和它解決了這個問題 –

相關問題