Я знаю, что прошло год с тех пор, как это было опубликовано, но сегодня была аналогичная проблема, и я опубликовал свое решение here.
Я копирую его здесь, в случае, что группы Google размещать удаляется:
Проблема
Мой файл .feature что-то вроде этого:
Then I get a response with "error" equals to "<error>"
And I get a response with "error" equals to "<error_message>"
Examples:
|error | error_message |
|NotFoundHttpException | Something with quotes "More text here" |
Как вы можете см. Я вызываю тот же самый шаг, чтобы проверить один из столбцов, который содержит кавычки в тексте и другой столбец, которые этого не делают.
Когда я запускаю тесты Behat, «Еще текст здесь» принимается за другой параметр, а Behat предлагает другой фрагмент.
Раствор
Чтобы исправить это, мы должны использовать другой символ, отличный от "сказать Behat, что переменная присутствует, в моем случае я использовал одиночные кавычки.
Итак, у меня есть изменил .feature так:
Then I get a response with "error" equals to "<error>"
And I get a response with "error_message" equals to '<error_message>' escaping quotes
Examples:
|error | error_message |
|NotFoundHttpException | Something with quotes "More text here" |
Тогда я обновил свою реализацию PHP тестов, как это:
/**
* @Then I get a response with :attibute equals to :value
* @Then /^I get a response with "([^"]+)" equals to '([^']+)' escaping quotes$/
*/
public function iGetAResponseWithEqualsTo($attibute, $value)
Эта же реализация называется.
Я пришел с этим решением после прочтения this page, в случае, если кому-то это понадобится.
Огурец принимает, но он не работает на behat – mloureiro