angularjs - "TypeError: createController is not a function in" jasmine test -



angularjs - "TypeError: createController is not a function in" jasmine test -

new jasmine tests. sorry if dumb question. i'm trying simple unit test of controller's existence in angularjs code, , can't on error. it's silly i'm sure. i've looked on stackoverflow, , tried many different things based on similar error not avail. maintain getting error.

here's app.js

angular.module('waldo', ['ui.router']) .config(['$stateprovider','$urlrouterprovider',function($stateprovider,$urlrouterprovider){ $stateprovider .state('home', { url: '/home', templateurl: '/home.html', controller: 'maincontroller' }) .state('posts', { url: '/posts/{id}', templateurl: '/posts.html', controller: 'postscontroller' }); $urlrouterprovider.otherwise('home'); }]) .factory('posts',[function(){ var o = { posts: [] }; homecoming o; }]) .controller('maincontroller', [ '$scope','posts', function($scope,posts){ $scope.posts = posts.posts; $scope.addpost = function(){ if(!$scope.title || $scope.title === '') { return; } $scope.posts.push({ title: $scope.title, link: $scope.link, upvotes: 0, comments: [ {author: 'joe', body: 'cool post!', upvotes: 0}, {author: 'bob', body: 'great thought wrong!', upvotes: 0} ] }); $scope.title = ''; }; $scope.incrementupvotes = function(post) { post.upvotes += 1; }; }]) .controller('postscontroller',['$scope','$stateparams','posts',function($scope,$stateparams,posts){ $scope.post = posts.posts[$stateparams.id]; }]);

test:

describe('test that', function() { beforeeach(module('waldo')); describe('maincontroller', function () { var scope, createcontroller; beforeeach(inject(function ($rootscope, $controller) { scope = $rootscope.$new(); createcontroller = function () { homecoming $controller('maincontroller', { '$scope': scope }); }; })); it('exists', function () { var controller = createcontroller(); expect(controller).not.tobenull(); }); }); });

karma.conf.js

// karma configuration // generated on wed apr 08 2015 13:46:46 gmt-0400 (edt) module.exports = function(config) { config.set({ // base of operations path used resolve patterns (eg. files, exclude) basepath: '', // frameworks utilize // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['jasmine'], // list of files / patterns load in browser files: [ "vendor/assets/bower_components/angular/angular.js", "vendor/assets/bower_components/angular-mocks/angular-mocks.js", "app.js", "test/*.js", "test/*/*_test.js" ], // list of files exclude exclude: [ ], // preprocess matching files before serving them browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { }, // test results reporter utilize // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['progress'], // web server port port: 9876, // enable / disable colors in output (reporters , 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 , executing tests whenever file changes autowatch: true, // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: ['firefox'], // continuous integration mode // if true, karma captures browsers, runs tests , exits singlerun: false }); };

bower.json

{ "name": "waldo", "version": "0.0.0", "license": "mit", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ], "dependencies": { "angular": "~1.3.15", "angular-ui-router": "~0.2.13", "bootstrap": "~3.3.4" }, "devdependencies": { "angular-mocks": "~1.3.15" } }

error is:

minerr/<@/home/christian/projects/waldo/vendor/assets/bower_components/angular/angular.js:63:12 loadmodules/<@/home/christian/projects/waldo/vendor/assets/bower_components/angular/angular.js:4138:15 foreach@/home/christian/projects/waldo/vendor/assets/bower_components/angular/angular.js:323:11 loadmodules@/home/christian/projects/waldo/vendor/assets/bower_components/angular/angular.js:4099:5 createinjector@/home/christian/projects/waldo/vendor/assets/bower_components/angular/angular.js:4025:11 workfn@/home/christian/projects/waldo/vendor/assets/bower_components/angular-mocks/angular-mocks.js:2425:44 typeerror: createcontroller not function in /home/christian/projects/waldo/test/integration/first_test.js (line 17) @/home/christian/projects/waldo/test/integration/first_test.js:17:30

thanks.

maybe have set module dependency in karma.conf.js in case 'ui.router', example:

... files: [ "vendor/assets/bower_components/angular/angular.js", "vendor/assets/bower_components/angular-mocks/angular-mocks.js", "vendor/assets/bower_components/angular-ui-router/angular-ui-router.js", "app.js", "test/*.js", "test/*/*_test.js" ], ...

then run 1 time again test.

also take @ these links, useful me

unit testing service in angularjs http://jamesreubenknowles.com/angularjs-nglocale-error-1952 https://docs.angularjs.org/error/$injector/nomod?p0=nglocale

angularjs unit-testing jasmine

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -