2012-09-05 3 views
0

Недавно я узнал о развитии, управляемом поведением (BDD), я вижу, что это хорошо для веб-приложения CRUD.Холст HTML5 и BDD - Огурцы

Являются ли инструменты BDD, такие как Cucumber, подходящими для игр, в частности, они хороши для игр на холсте HTML5?

Есть ли еще какие-нибудь инструменты BDD для холстов для HTML5? Или это BDD только для приложений CRUD?

+0

Что такое BDD? У вас есть ссылка на него? – Jarrod

+0

BDD - это разработка, основанная на поведении. http://en.wikipedia.org/wiki/Behavior-driven_development – 18bytes

ответ

1

Вопрос: можете ли вы подумать о способах взаимодействия с основанной на холсте играми в JavaScript?

Практически, вы могли бы открыть консоль JS и взаимодействовать с игрой оттуда? Можете ли вы стрелять кликами в нужных координатах, можете ли вы нажимать клавиши и, самое главное, можете ли вы делать утверждения о том, что выводится в игре?

Если да, то вы можете автоматизировать игру в JavaScript, и, возможно, над ней могут быть использованы либо Cucumber, либо Cucumber.js.

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

Чтобы ответить на ваш второй вопрос: BDD не имеет абсолютно никакого отношения к приложениям «CRUD». Речь идет о описании поведений и автоматизации примеров, иллюстрирующих эти поведения. Поэтому вы можете использовать подход BDD практически для любых типов приложений.

Если вы не нашли способ автоматизировать свое приложение, вы все равно можете рассмотреть возможность написания сценариев для документирования (ожидаемого) поведения вашего приложения. Фаза автоматизации не является обязательной, в отличие от общих убеждений :)

2

Я недавно экспериментировал с BDD и Games Development. Но я строю на .NET & XNA Framework с C#. Я использую Visual Studio как свою IDE и тестирование с помощью SpecFlow и NUnit.

SpecFlow - инструмент BDD/Gherkin - и в качестве группы мы говорили об игре и формулировали некоторые требования и документировали их в Gherkin ... и отправлялись оттуда. Ключом является разработка игры для проверки.

Мы отвлекли игровой движок от основной реализации «игровой петли», которую требует XNA, чтобы мы могли загрузить ее и ввести все зависимости, которые она требует. Затем мы запускаем тесты на движке и делаем подтверждения кода, чтобы убедиться, что он ведет себя правильно.

Мы решили на раннем этапе, что Graphics/Drawing/Sound/etc оказались вне сферы тестирования ... если они были сломаны в конечном продукте, это было бы очень очевидно. Набор тестов, который нам удалось создать, просто дает нам уверенность в том, что механики самой игры работают по назначению (т. Е. Игровой объект A в нужном месте?), Если объект игры B умирает при ударе с помощью снаряда C? и т.д.).

До сих пор это был довольно хороший опыт.

+0

Это интересно, и это была стратегия, которую мы применили к веб-приложениям heavy-JS. Это компромисс, который может сделать приемочное тестирование жизнеспособным в других трудно поддающихся автоматизации проектах, таких как игры или асинхронные приложения пользовательского интерфейса. Конечно, это решение в каждом конкретном случае. – jbpros

+1

Конечно, в каждом случае да.Я также думаю, что, безусловно, в случае с играми очень важно иметь короткую прототипную итерацию, чтобы быстро увидеть, стоит ли игровой идее вкладывать деньги в более трудоемкий процесс. На самом деле, я не на 100% продаю концепцию разработки игр, основанных на тестах ... конечно, для выпусков «одного выстрела» без запланированных обновлений/сиквелов/патчей и т. Д .; особенно для разработчиков инди-игр. Но концепция работает - и позволяет вам протестировать «движок» игры, не забившись с невозможными утверждениями. – SaxonMatt