« Back to Index
Better Mocking using RequireJS’ undef
method to unset redefined modules
View original Gist on GitHub
DependencyHelper.js
define(['require'], function(require) {
var stubbed = [];
return {
stub: function(name, implementation) {
stubbed.push(name);
requirejs.undef(name);
define(name, [], function() {
return implementation;
});
},
loadWithCurrentStubs: function(name, callback) {
requirejs.undef(name);
stubbed.push(name);
require([name], callback);
},
reset: function() {
stubbed.forEach(function(name) {
requirejs.undef(name);
});
stubbed = [];
}
};
});
Example.js
beforeEach(function () {
DependencyHelper.stub('name', implementation);
DependencyHelper.stub('deviceInspector', {
getGroup: function () {},
getType: function () {}
});
DependencyHelper.loadWithCurrentStubs('module/base', function (base) {
// code
});
});
afterEach(function () {
DependencyHelper.reset();
});