Estoy escribiendo un plugin que utiliza un plugin existente que me gustaría burlar.¿Cómo me burlo de un plugin jQuery?
El plugin que estoy escribiendo se ve algo así como esto:
(function($){
$.widget("myPlugin",{
_create: function(){
var otherControl = $("<div></div>");
otherControl.pluginWhichShouldBeMocked({foo: "bar"});
this.element.append(otherControl);
}
});
})(jQuery);
Y tengo una prueba de jazmín, que tipo de parece a esto:
describe("When creating", function(){
var element;
var passedOptions;
beforeEach(function(){
jQuery.pluginWhichShouldBeMocked = function(options){
passedOptions = options;
}
element = $("<div></div>");
element.myPlugin();
});
it("should create the other plugin and pass 'bar' to it as the foo parameter", function(){
expect(passedOptions.foo).toEqual("bar");
});
});
Esta línea es donde he tratado para simular el complemento:
jQuery.pluginWhichShouldBeMocked = function(options){
passedOptions = options;
}
La instancia del complemento real sigue siendo llamada.