The new boot.js does a bunch of initialization and attaches it to window.onload (), which is already called by the time require.js loads Jasmine. You can manually call window.onload () to initialize the HTML reporter and run the environment.
SpecRunner.html
<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Jasmine Spec Runner v2.0.0</title> <link rel="shortcut icon" type="image/png" href="lib/jasmine-2.0.0/jasmine_favicon.png"> <link rel="stylesheet" type="text/css" href="lib/jasmine-2.0.0/jasmine.css"> <script data-main="specRunner" src="../bower_components/requirejs/require.js"></script> </head> <body> </body> </html>
specRunner.js
(function() { 'use strict'; // Configure RequireJS to shim Jasmine require.config({ baseUrl: '..', paths: { 'jasmine': 'tests/lib/jasmine-2.0.0/jasmine', 'jasmine-html': 'tests/lib/jasmine-2.0.0/jasmine-html', 'boot': 'tests/lib/jasmine-2.0.0/boot' }, shim: { 'jasmine': { exports: 'window.jasmineRequire' }, 'jasmine-html': { deps: ['jasmine'], exports: 'window.jasmineRequire' }, 'boot': { deps: ['jasmine', 'jasmine-html'], exports: 'window.jasmineRequire' } } }); // Define all of your specs here. These are RequireJS modules. var specs = [ 'tests/spec/routerSpec' ]; // Load Jasmine - This will still create all of the normal Jasmine browser globals unless `boot.js` is re-written to use the // AMD or UMD specs. `boot.js` will do a bunch of configuration and attach it initializers to `window.onload()`. Because // we are using RequireJS `window.onload()` has already been triggered so we have to manually call it again. This will // initialize the HTML Reporter and execute the environment. require(['boot'], function () { // Load the specs require(specs, function () { // Initialize the HTML Reporter and execute the environment (setup by `boot.js`) window.onload(); }); }); })();
Spec example
define(['router'], function(router) { 'use strict'; describe('router', function() { it('should have routes defined', function() { router.config({}); expect(router.routes).toBeTruthy(); }); }); });
Erik Ringsmuth Dec 31 '14 at 3:26 2013-12-31 03:26
source share