Benim testler aşağıdaki nedenle başarısız:Başka bir sınıf/dosyadan global değişken içeren bir yöntem için nasıl bir yasemin testi yazarım?
ReferenceError: Can't find variable: moving_canvas_context in file (line 5)
Ben testi başarısız nedenini anlıyoruz. Bu, ayrı bir javascript dosyasında tanımlandığı için değişkeni anlamıyor. Ancak, küresel olarak ilan edilir ve gerçekte çalışır.
Bu clear_canvas işlevi için bir yasemin testini nasıl yazarım?
JavaScript Canvas_actions: Canvas_actions için
(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);
Yasemin Testi:
(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);
Teşekkür ederiz. Cevabınız çok yardımcı oldu. Örneğinizin ardından, tüm global referansları kaldırırsam, tuvalde çizim yapmakla ilgilenen clearRect veya drawImage gibi bir yöntemi nasıl test edersiniz? alay? – John
Evet, nesneleriniz için ayrılmış, ancak daha fazla tümleştirme stili, dış nesnelerle ilgilenen nesneleri denetler. Bunlar sadece harici bir nesneyi kullanan ve test edilen amaçlanan davranış için durumunu kontrol eden testlerdir. –