заявлено глобально и работает в реальности
Ну, это также нужно объявить при запуске теста. Таким образом, вы, вероятно, пропускаете ссылку на скрипт, где он определен в тестовом приспособлении html.
Кроме того, глобальные переменные, как правило, не очень хорошая идея, они имеют тенденцию создавать сложные ошибки. Поскольку вы уже используете jasmine в качестве среды тестирования, попробуйте абстрагировать зависимость от этой глобальной переменной в том, что вы передаете тестируемому коду. Затем используйте насмешливые способности Жасмин, чтобы проверить это.
Если вы удалите глобальные ссылки из Canvas_Actions
, это может выглядеть так:
var Canvas_Actions = function(canvas) {
this.canvas = canvas;
}
Canvas_Actions.prototype.clear_canvas = function(background_image) {
var canvas = this.canvas;
canvas.getContext().clearRect(0, 0, canvas.width, canvas.height);
canvas.getContext().drawImage(background_image, 0, 0, canvas.width, canvas.height);
canvas.clearObjects();
};
Вы можете смоделировать аргумент canvas
с помощью жасмина и проверить Canvas_Actions
в изоляции.
Как можно заметить, этот код может найти класс Canvas
, и вы можете обнаружить, что clear_canvas
принадлежит ему. Используйте тесты, чтобы направлять ваш дизайн, один шаг за раз.