Я создаю тесты для своего кода с использованием Behat v3.0, но у меня есть несколько шагов в набросках сценария моего файла функций, которые остаются неопределенными.
Пример моих Сценарных Контуров:
Scenario Outline: Send email validation messages
Given I have the email <email>
When I send the email
Then the response status code should be "500"And I get a message from the <variable> variable that reads <message>
Examples:
| email | variable | message |
| | email | The email field is required. |
| -1 | email | The email must be a valid email address. |
| email | email | The email must be a valid email address. |
Я использовал документацию на http://docs.behat.org/en/stable/guides/1.gherkin.html#scenario-outlines.
Чтобы определить шаги, у меня есть методы определения шагов в FeatureContext.php для двух проблемных шагов: «У меня есть электронная почта < электронная почта> «и» я получаю сообщение от переменной, которая читает < сообщение> «:
/**
* @Given I have the email :email
*/
public function iHaveTheEmail($email)
{
// Save the email address
}
/**
* @Then I get a message from the :variable variable that reads :message
*/
public function iGetAMessageFromTheVariableThatReads($variable, $message)
{
// Check the response for the validation errors
}
Я использовал документацию на http://docs.behat.org/en/v3.0/guides/2.definitions.html
Результат работы Behat настаивает на том, что эти шаги все еще не определены. Только шаги с параметрами, связанными со списками примеров, имеют эту проблему. Шаг «Код статуса ответа должен быть« 500 »» работает как задумано.
Я не могу найти конкретные примеры определения шагов в набросках сценария, и документация, как правило, недостаточна для Behat.
Я могу определить шаги с помощью комментария регулярного выражения, как в Behat v2.5, но разве это единственное решение?
Вы должны использовать кавычки для ваших аргументов:
Scenario Outline: Send email validation messages
Given I have the email "<email>"When I send the email
Then the response status code should be "500"And I get a message from the "<variable>" variable that reads "<message>"
Или вы можете использовать регулярные выражения, как Mink Extension:
Других решений пока нет …