我的測試失敗,原因如下:如何爲包含來自其他類/文件的全局變量的方法編寫茉莉花測試?
ReferenceError: Can't find variable: moving_canvas_context in file (line 5)
我瞭解測試失敗的原因。它不瞭解變量,因爲它是在單獨的JavaScript文件中定義的。然而,它是在全球範圍內宣佈並在現實中運作。
如何爲這個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);
茉莉花試驗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);
謝謝。你的回答非常有幫助。在你的例子之後,如果我刪除了所有的全局引用,你將如何測試一個方法,如clearRect或drawImage來處理畫布上的繪圖?嘲笑? – John
是的,嘲笑你的對象是孤立的,但更多的集成風格檢查處理外部對象的對象。這些測試只是測試外部對象,並檢查其狀態以確定測試的預期行爲。 –