Home News

Как сделать юнит тесты для игры на js?

02.08.2017

видео Как сделать юнит тесты для игры на js?

Unit тестирование в С#. Как создать Unit тест в C#

Добрый день.

Есть браузерная игра на js, весь код в одном файле, файл подключается к html. Возник вопрос о том, как сделать юнит тесты для игры. Смотрел примеры на mocha и jasmine, но там тестируются самые простые функции которые возвращают конкретное значение и в тестах это возвращаемое значение сравнивается с ожидаемым. В моем случае, функции в коде не возвращают ничего, одна задает картинки, другая меняет координаты игрока, другая рисует и т.п. Пример такой функции:


Тесты и автоматическое тестирование / Введение в программирование, урок 13 (JavaScript ES6)

function checkReadyState() { if (game.gameOverAudio.readyState === 4 && game.backgroundAudio.readyState === 4) { window.clearInterval(game.checkAudio); document.getElementById('loading').style.display = "none"; game.start(); }}

Эта функция не возвращает ничего, и как здесь можно понять, прошла она тест или нет? Или для каждой функции добавить какое-нибудь особое возвращаемое значение, которое будет говорить о том, что функция отработала успешно?


Автотесты в JavaScript. Как оставить тестировщиков без хлеба

Как тестировать такой код? И в каком файле это нужно делать, если весь код в одном файле? В тестировании я новичок, поэтому, полагаюсь на ваши советы. Заранее спасибо

Answer 1

Возник вопрос о том, как сделать юнит тесты для игры.

В вашем случае, никак.

По определению, модульный (он же юнит) тест проверяет маленький изолированный фрагмент кода - модуль. Судя по примеру кода из вопроса, ни о какой модульности приложения не идет речь. Совсем.

Если очень-очень хочется сделать именно модульные тесты, начните с выделения модулей и изоляции зависимостей модулей друг от друга. Вопрос о том, как именно выделять модули и разрывать зависимости требует отдельного обсуждения и должен ставиться на примере конкретного кода.

Если же стоит задача протестировать приложение, а времени на подготовку кода к модульному тестированию нет, то можно начать с функционального тестирования. При использовании этого подхода, вы проверяете корректность работы не отдельного изолированного модуля, а более крупного куска приложения. В вашем случае - это может быть все приложение целиком. (В последнем случае я бы говорил о End-to-End тестировании, но это уже вопрос терминологии.)

rss