Last active
October 12, 2024 17:11
-
Star
(180)
You must be signed in to star a gist -
Fork
(30)
You must be signed in to fork a gist
-
-
Save michaelcox/3800736 to your computer and use it in GitHub Desktop.
Browser Unit Testing with Backbone Mocha Chai and RequireJS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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'); | |
}); | |
}); | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define(function(require) { | |
var Backbone = require('backbone'); | |
var models = {}; | |
models.Sample = Backbone.Model.extend({ | |
urlRoot: '/api/samples' | |
}); | |
return models; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: { | |
'chai-jquery': ['jquery', 'chai'] | |
}, | |
urlArgs: 'bust=' + (new Date()).getTime() | |
}); | |
define(function(require) { | |
var chai = require('chai'); | |
var mocha = require('mocha'); | |
require('jquery'); | |
require('chai-jquery'); | |
// Chai | |
var should = chai.should(); | |
chai.use(chaiJquery); | |
mocha.setup('bdd'); | |
require([ | |
'specs/model-tests.js', | |
], function(require) { | |
mocha.run(); | |
}); | |
}); |
Thank you very much, man. It's really help me to add unit testing in my test-app based on old backbone... Guys, get attention that baseUrl is very important for all your future imports and paths. It will be based on your .html run-test file in your file system. Other thing - very great and really helpfull.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Can someone post their Gruntfile.js or gulpfile.js used to run this code? Thanks.