Mis pruebas falla por la siguiente razón:¿Cómo escribo una prueba de jazmín para un método que contiene una variable global de otra clase/archivo?
ReferenceError: Can't find variable: moving_canvas_context in file (line 5)
entiendo la razón por la prueba está fallando. No comprende la variable ya que está definida en un archivo javascript por separado. Sin embargo, está declarado globalmente y funciona en la realidad.
¿Cómo escribo una prueba de jazmín para esta función clear_canvas?
JavaScript Canvas_actions:
(function() {
window.Canvas_Actions = (function() {
function Canvas_Actions() {}
Canvas_Actions.prototype.clear_canvas = function() {
moving_canvas_context.clearRect(0, 0, moving_canvas.width, moving_canvas.height);
main_canvas_context.drawImage(window.background_image, 0, 0, main_canvas.width, main_canvas.height);
return window.canvas_objects = [];
};
return Canvas_Actions;
})();
}).call(this);
Prueba de jazmín para Canvas_actions:
(function() {
describe('Canvas Actions', function() {
return describe('clear_canvas', function() {
return it('clears the canvases and deletes all objects', function() {
var actions;
jasmine.getFixtures().fixturesPath = "../spec/javascript/fixtures";
loadFixtures("canvas_fixture.html");
actions = new Canvas_Actions();
actions.clear_canvas();
return expect(canvas_objects).toEqual([]);
});
});
});
}).call(this);
Gracias. Tu respuesta fue muy útil. Siguiendo su ejemplo, si elimino todas las referencias globales, ¿cómo probaría un método como clearRect o drawImage que se relaciona con el dibujo en el lienzo? se burla? – John
Sí, se burla de sus objetos de forma aislada, pero más controles de estilo de integración para objetos que se ocupan de objetos externos. Estas son solo pruebas que ejercen un objeto externo y verifican su estado para el comportamiento previsto bajo prueba. –