robzolkos
5/28/2013 - 8:16 AM

SpecRunner.js

define(function(require) {
  var Backbone = require('backbone');

  var models = {};

  models.Sample = Backbone.Model.extend({
    urlRoot: '/api/samples'
  });

  return models;

});
define(function(require) {
  var models = require('models');

  describe('Models', function() {

    describe('Sample Model', function() {
      it('should default "urlRoot" property to "/api/samples"', function() {
        var sample = new models.Sample();
        sample.urlRoot.should.equal('/api/samples');
      });
    });

  });

});
<html>
  <head>
    <meta charset="utf-8"/>
    <title>Backbone Tests</title>
    <link rel="stylesheet" href="libs/mocha.css"/>
  </head>
  <body>
    <div id="mocha"></div>
    <script data-main="SpecRunner.js" src="/app/libs/require.js"></script>
  </body>
</html>
require.config({
  baseUrl: '/backbone-tests/',
  paths: {
    'jquery'        : '/app/libs/jquery',
    'underscore'    : '/app/libs/underscore',
    'backbone'      : '/app/libs/backbone',
    'mocha'         : 'libs/mocha',
    'chai'          : 'libs/chai',
    'chai-jquery'   : 'libs/chai-jquery',
    'models'        : '/app/models'
  },
  shim: {
    'underscore': {
      exports: '_'
    },
    'jquery': {
      exports: '$'
    },
    'backbone': {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone'
    },
    'chai-jquery': ['jquery', 'chai']
  },
  urlArgs: 'bust=' + (new Date()).getTime()
});

require(['require', 'chai', 'chai-jquery', 'mocha', 'jquery'], function(require, chai, chaiJquery){

  // Chai
  var should = chai.should();
  chai.use(chaiJquery);

  /*globals mocha */
  mocha.setup('bdd');

  require([
    'specs/model-test.js',
  ], function(require) {
    mocha.run();
  });

});