Огурец: Как писать фрагменты / определения шагов в PHP? - PullRequest
3 голосов
/ 15 октября 2010

Я пытаюсь заставить Cucumber работать над тестированием приложения PHP. Пока я могу запустить функцию, просто запустив cucumber в моем каталоге функций. В нижней части результатов написано:

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

Что это значит точно? Я в порядке с написанием большинства моих определений шагов в Ruby, но в какой-то момент мне понадобится создать некоторые установочные данные (в идеале - в PHP). Как я могу написать определения шагов в PHP, как предполагает это утверждение?

К вашему сведению: я новичок в Ruby и Cucumber.


Решение: Cuke4PHP

Cuke4PHP реализует протокол провода Cucumber, позволяющий писать определения шагов в PHP.

Ответы [ 3 ]

3 голосов
/ 23 ноября 2010

Взгляните на Behat, PHP-версию Cucumber: http://everzet.com/Behat/

3 голосов
/ 19 января 2011

Если вы не нашли решения, это то, что я нашел сегодня! Этот парень избавил меня от работы, которую я должен был сделать, чтобы использовать PHP LOL

https://github.com/olbrich/cuke4php

Он реализовал проводной протокол для PHP. В двух словах, это еще один сервер, который выполняет шаги PHP, когда Cucumber находит их. Также передает обратно результаты.

Ах, больше не нужно настраивать env.rb.

2 голосов
/ 20 октября 2010

Определения шагов хранятся в features/step_definitions, и именно это говорит Cucumber, что делать, когда он сталкивается с такими утверждениями, как «Учитывая, что у меня 3 огурца в животе»:

Given /^I have (\d+) cucumbers in my belly$/ do |cukes|
  # Some Ruby code here
end

http://github.com/aslakhellesoy/cucumber/wiki/Step-Definitions

Чтобы написать свои шаги в PHP, просто поместите их в features/step_definitions и настройте свою среду (features/support/env.rb) соответственно.В документации по Cucumber есть полезная информация в виде функции Cucumber:

http://github.com/aslakhellesoy/cucumber/wiki/php

Быстрый поиск в Google также привел к появлению следующей статьи о тестировании PHP с Cucumber, Webrat иSelenium, который выглядит довольно полезным:

http://dev.af83.com/testing/acceptance-tests-php-project-cucumber-webrat-selenium-trio/2010/06/03

Другие языки, которые не поддерживаются напрямую, могут использовать проводной протокол Cucumber, что, например, делает Clucumber (Common Lisp):

http://github.com/aslakhellesoy/cucumber/wiki/wire-protocol

Я не занимаюсь PHP, но надеюсь, что мой ответ все еще помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...