2015-05-07 58 views
0

我使用Symfony2,並且Behat有問題。我的情況是:Behat在點擊按鈕提交表單時結束

方案:添加形式
訪問路徑 symfony_route_path
然後填充數據形式爲x
然後推BTN 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'。 有人遇到類似的問題,可以幫助我嗎?我謝謝你。

回答

0

它的工作方式如下,您不必在上下文類中實現任何其他方法。

也讀這cheatsheet以及。

Given I am on "url" 
When I fill in "form_element" with "value" 
Then I press "button" 
+0

嗨@BentCoder感謝您的PDF,以及它是有用的。但即使「我按」沒有奏效。另一個問題是我會講葡萄牙語,所以我需要用葡萄牙語寫這些情景。真正的上下文選項是「@Then Precionar botao:button」 – dhanielo

+0

@dhanielo *那麼*句子應該是斷言而不是動作。 – mloureiro

1

試試這個:我點擊「按鈕」。

我有一些問題,並解決它以這種方式

關於翻譯,我真的不知道,如果有一些最好的解決辦法,但我會創造一個PortugueseContext並調用需要的方法從那裏,所以......

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

但有可能是一個最好的辦法......

+0

這應該是一個評論(一旦你有[足夠的聲譽](http://stackoverflow.com/help/privileges)添加一個)而不是答案。請參閱[幫助部分](http://stackoverflow.com/help/whats-reputation)以瞭解如何贏得聲望並因此能夠發表評論。 – mathielo