Поведение заканчивается при нажатии на кнопку отправки формы

Я использую Symfony2, и у меня проблема с Behat. Мой сценарий:

Сценарий: Добавить форму
Когда Доступ к пути "symfony_route_path"
Затем Заполнить форму данными x
Затем нажмите кнопку "id_btn_form_submit"

И контексты:

(класс FormContext расширяет DefaultContext, который немного похож на -> https://github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ResourceBundle/Behat/DefaultContext.php)

/**
 * @Then Fill data form x
 */
public function fillData()
{
    $this->fillField('field_x[name]', 'name');
    $this->fillField('field_y[address]', 'Address');
}

(класс BaseContext расширяет RawMinkContext)

/**
 * @Then Push btn :button
 */
public function pressBtn($button)
{
    $this->getSession()->getPage()->pressButton($button);
}

Консоль вывода выполняет «Заполнить форму данных x» (запускает метод полностью), но не показывает «Push btn». кто-то сталкивался с подобной проблемой и может мне помочь? Я благодарю тебя.


person dhanielo    schedule 07.05.2015    source источник


Ответы (2)


Попробуйте это: я нажимаю на «кнопку».

У меня были некоторые проблемы с этим, и я решил это таким образом

Что касается перевода, я не совсем уверен, есть ли какое-то лучшее решение, но я бы создал португальский контекст и вызвал оттуда метод, который вы хотите, поэтому...

public class overrideMinkContextPortuguese extends MinkContext
{
    /*
    * @When Precionar botao :button
    */
    public function precionarBotao($button)
    {
        $this->pressButton($button);
    }

Но, наверное, есть лучший способ...

person Fernando Caraballo    schedule 20.05.2015
comment
Это должен быть комментарий (если у вас есть достаточная репутация, чтобы добавить его), а не ответ. Пожалуйста, обратитесь к разделу справки, чтобы узнать, как заработать репутацию и, следовательно, иметь возможность комментировать. - person mathielo; 20.05.2015

Это делается, как показано ниже, вам не нужно реализовывать какой-либо дополнительный метод в классе контекста.

Прочтите также эту памятку.

Given I am on "url"
When I fill in "form_element" with "value"
Then I press "button"
person BentCoder    schedule 07.05.2015
comment
Привет @BentCoder, спасибо за pdf, он будет полезен. Но даже с нажатием я не работал. Другая проблема заключается в том, что я говорю по-португальски, поэтому мне нужно писать сценарии на португальском языке. В реальном контексте опция @Then Precionar botão: button - person dhanielo; 08.05.2015
comment
@dhanielo тогда предложения должны быть для утверждений, а не для действий. - person mloureiro; 22.03.2016