I am studying AJS unit testing, with the requirements of RequireJS, Karma, Mocha, Chai and angular -mocks. I was lucky with the first four, but I need to get into the βrealβ tests and cannot get angular -mocks to work. There is a lot going on, so I will be as brief as possible.
Test /karma.conf.js
module.exports = function (config) { config.set({ // requirejs may need to be listed before other modules (see https://github.com/princed/karma-chai-plugins#limited-requirejs-support) frameworks: ["requirejs", "mocha", "chai"], files: [ // load the RequireJS config files first {pattern: "client/app/require-shared.js", watched: false}, {pattern: "test/require-test.js", watched: false}, // set included to false for files to be loaded via RequireJS {pattern: "client/**/*.js", included: false }, {pattern: "bower_components/**/*.js", included: false, watched: false}, // Mocha stuff {pattern: "test/unit/mocha.conf.js", watched: false}, // test files {pattern: "test/unit/**/pageSelectorTest.js", included: false } ], exclude: [ "client/app/bootstrap.js", "client/app/require-main.js", "*.conf.js" ], reporters: ["spec"], // enable / disable watching file and executing tests whenever any file changes autoWatch: false, browsers: [ "PhantomJS" ], singleRun: true }); };
test / block / mocha.conf.js
window.mocha.setup({ ui: "tdd" });
test / block / MyTest.js
define([ "angular-mocks" ,"app" ], function () { "use strict"; var MODULE_NAME = "PageSelector"; var assert = chai.assert; suite("Unit testing " + MODULE_NAME, function() { suite(MODULE_NAME + " module", function () { var appModule; setup(function () {
I will skip posting the entire RequireJS configuration. I'm sure I get angular and angular-mocks because I already worked through these errors.
My Grunt file just has the ability to download karma.conf.js . grunt karma output:
Running "karma:unit" (karma) task INFO [karma]: Karma v0.12.16 server started at http://localhost:9876/ INFO [launcher]: Starting browser PhantomJS INFO [PhantomJS 1.9.7 (Linux)]: Connected on socket WJUF8xogEo-XCG-8zzJX with id 10483911 PhantomJS 1.9.7 (Linux) LOG LOG: undefined Unit testing PageSelector PageSelector module β should exist AssertionError: module exists: expected undefined to not equal undefined at /home/client/node_modules/chai/chai.js:925 at assertEqual (/home/client/node_modules/chai/chai.js:1402) at /home/client/node_modules/chai/chai.js:3627 at /home/client/node_modules/chai/chai.js:2648 at /home/client/test/unit/utility/pageSelectorTest.js:37 at callFn (/home/client/node_modules/mocha/mocha.js:4338) at /home/client/node_modules/mocha/mocha.js:4331 at /home/client/node_modules/mocha/mocha.js:4728 at /home/client/node_modules/mocha/mocha.js:4819 at next (/home/client/node_modules/mocha/mocha.js:4653) at /home/client/node_modules/mocha/mocha.js:4663 at next (/home/client/node_modules/mocha/mocha.js:4601) at /home/client/node_modules/mocha/mocha.js:4625 at done (/home/client/node_modules/mocha/mocha.js:4300) at callFn (/home/client/node_modules/mocha/mocha.js:4343) at /home/client/node_modules/mocha/mocha.js:4331 at next (/home/client/node_modules/mocha/mocha.js:4626) at /home/client/node_modules/mocha/mocha.js:4625 at done (/home/client/node_modules/mocha/mocha.js:4300) at callFn (/home/client/node_modules/mocha/mocha.js:4343) at /home/client/node_modules/mocha/mocha.js:4331 at next (/home/client/node_modules/mocha/mocha.js:4626) at /home/client/node_modules/mocha/mocha.js:4630 at timeslice (/home/client/node_modules/mocha/mocha.js:5763) PhantomJS 1.9.7 (Linux): Executed 1 of 1 (1 FAILED) ERROR (0.003 secs / 0.002 secs) Warning: Task "karma:unit" failed. Use
If I change angular.mock.module(MODULE_NAME); on angular.module(MODULE_NAME); , assert works. What am I missing? (We apologize if there is not enough information above. I can post more as needed.)