2015-04-02 92 views
0

我正在使用requirejs用於我的angularjs應用程序。對於TDD,我使用摩卡。按本article,我寫我的測試案例,但總有這樣的錯誤在執行測試用例angularjs,karma和requirejs測試用例錯誤

Error: [$injector:modulerr] Failed to instantiate module sampleapp due to: 
Error: [$injector:nomod] Module 'sampleapp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 

測試用例來了:

define([ 
    'angular', 
    'angular-mocks' 
], function() { 
    describe('main controller todo app', function() { 

     var scope, ctrl; 

     beforeEach(module('sampleapp',[])); 
     beforeEach(inject(function($rootScope, $controller) { 
      scope = $rootScope.$new(); 
      ctrl = $controller('mainCtrl', {$scope: scope}); 
     })); 

     it('is todo added', function() { 
      scope.todo = 'My new Todo'; 
      scope.addTodo(); 
      assert.equal(scope.todos.length, 1); 
     }); 
    }) 
}); 

噶CONF:

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

    config.set({ 
     basePath: './', 

     frameworks: [ 
      'requirejs', 
      'mocha', 
      'chai' 
     ], 

     files: [{ 
      pattern: 'test/test-main.js', 
      watched: true 
     }, { 
      pattern: 'app/angular/**/*.js', 
      included: false 
     }, { 
      pattern: 'app/*.js', 
      included: false 
     }, { 
      pattern: 'app/scripts/additional/**/*.js', 
      included: false 
     }, { 
      pattern: 'test/spec/**/*.js', 
      included: false, 
      watched: true 
     }], 

     exclude: [ 
      'app/main.js' 
     ], 

     reporters: ['spec'], 

     port: 9876, 

     colors: true, 

     logLevel: config.LOG_INFO, 

     autoWatch: true, 

     browsers: ['Chrome'], 

     captureTimeout: 20000, 

     singleRun: false, 

     plugins: [ 
      'karma-chai', 
      'karma-mocha', 
      'karma-requirejs', 
      'karma-spec-reporter', 
      'karma-chrome-launcher' 
     ] 
    }); 
} 

測試主體:

var tests = []; 
var TEST_REGEXP = /test[A-Za-z0-9]{1,}-[A-Za-z0-9]{1,}\.js/i; 

Object.keys(window.__karma__.files).forEach(function(file) { 
    if (TEST_REGEXP.test(file)) { 
     tests.push(file); 
    } 
}); 

requirejs.config({ 

    'baseUrl': '/base/app', 

    'paths': { 
     'angular': 'scripts/additional/angular/angular', 
     'angular-mocks': 'scripts/additional/angular-mocks/angular-mocks', 
    }, 

    'shim': { 
     'angular-mocks' : {'exports' : 'angular-mocks', 'deps': ['angular']} 
    }, 

    'deps': tests, 

    'callback': window.__karma__.start 
}); 

任何幫助或方向來解決這個非常感謝

回答

0

意思是那些是越來越創建了模塊的文件沒有被加載的主要問題(即文件執行代碼var app = angular.module("sampleapp",[]);

一旦被糾正,一切都開始工作

相關問題