我利用 jasmine + karma編寫angularjs的controller單元測試用例,一直報錯:Error: [ng:areq] Argument 'roleCtrl' is not a function, got undefined,
大伙幫忙看看啥問題?
源碼如下:
(1):roleCtrl
import ngApp from '../components/app';
export default ngApp.controller('roleCtrl', ['$scope', function($scope) {
$scope.columns = [
{ "title": "角色", "attribute": "roleName", "type": "data" },
{ "title": "權限說明", "attribute": "description", "type": "data" }
];
$scope.url = "/api/role/search/find";
$scope.catalog = "role";
$scope.param = { "systemCode": localStorage.syscode, page: 0, size: 10, isDelete: false };
}]);
(2):spec.js
'use strict';
angular.module('ngApp', ['ui.router'])
.value('rolefactory', 'rolefactory')
.value('dialogService', 'dialogService');
describe("ngApp Unit Test", function() {
beforeEach(angular.mock.module("ngApp"));
var scope, ctrl;
beforeEach(inject(function($controller, $rootScope) {
//模擬生成scope, $rootScope是angular中的頂級scope,angular中每個controller中的
//scope都是rootScope new出來的
scope = $rootScope.$new();
//模擬生成controller 并把先前生成的scope傳入以方便測試
ctrl = $controller('roleCtrl', { $scope: scope });
}));
// controller test
describe('role controller test', function() {
it('Add Cat Controller test', function() {
expect(50).toBe(50);
})
})
});
(3):karma配置
// Karma configuration
// Generated on Tue Mar 21 2017 12:39:40 GMT+0800 (CST)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'node_modules/angular/angular.js',
'node_modules/angular-ui-router/release/angular-ui-router.js',
'node_modules/angular-mocks/angular-mocks.js',
// 'app/components/*.js',
// 'app/controller/*.js',
// 'app/components/**/*.js',
'app/controller/rolectrl.js',
'unit/controller/*.js'
],
// list of files to exclude
exclude: ['karma.conf.js'],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'app/controller/rolectrl.js': ['webpack', 'coverage']
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'coverage'],
// 設置輸出測試內容文件的信息
// junitReporter: {
// outputFile: 'test_out/unit.xml',
// suite: 'unit'
// },
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// plugins: [
// 'karma-chrome-launcher',
// 'karma-firefox-launcher',
// 'karma-jasmine',
// 'karma-junit-reporter'
// ],
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false,
// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity,
//webpack: require('./webpack.config')(true)
webpack: {
module: {
loaders: [{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['es2015']
}
}]
//plugins: ['node_modules/angular/angular.js', 'node_modules/angular-ui-router/release/angular-ui-router.js', 'node_modules/angular-mocks/angular-mocks.js']
}
}
})
}
錯誤截圖:
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數據專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。