Behat \ Laravel无法找到提交

时间:2016-06-28 10:02:45

标签: php laravel behat mink

我正试图通过Behat测试我的Laravel应用程序。 有一个主页,上面有姓名,电子邮件和“注册”按钮的字段。我正在尝试按下behat-test中的按钮,但是我有一个错误致命错误:在null上调用成员函数press()(Behat \ Testwork \ Call \ Exception \ FatalThrowableError)

我的HTML:

<html>
    <head>
    </head>
    <title>Registration</title>
    <body>
        <form action="/thanks" name="register">
            <p align="center"><font size="4"><b>Please, enter your name and e-mail</b></font></p>
            <p align="center"><input name="name" type="text" value="name"></p>
            <p align="center"><input name="email" type="text" value="e-mail"></p>
            <p align="center"><input name="registerButton" type="submit" value="Register"></p>
            <p>&nbsp;</p>
        </form>
    </body>
</html>

我的FeatureContext功能:

/**
 * @When I press the :submit
 */

public function iPressTheSubmit($submit) {
    $element=$this->getSession()->getPage()->findButton($submit);     
    $element->click();
}

情景:

Scenario: Register Test
Given I am on the homepage
When I press the "registerButton"
Then I should be on "/thanks"

输出:

  

场景:注册测试#features / regpage.feature:4       鉴于我在主页上#FeatureContext :: iAmOnHomepage()       当我按下“registerButton”时,提交#FeatureContext :: iPressTheSubmit()         致命错误:在null上调用成员函数press()(Behat \ Testwork \ Call \ Exception \ FatalThrowableError)       然后我应该在“/ thanks”#FeatureContext :: assertPageAddress()   ---失败的场景:       特征/ regpage.feature:4      1个场景(1个失败)      3个步骤(1个通过,1个失败,1个跳过)

behat.yml: default: extensions: Laracasts\Behat: # env_path: .env.behat Behat\MinkExtension: default_session: laravel base_url: localhost:8000 laravel: ~

2 个答案:

答案 0 :(得分:1)

我用2个步骤修复它:  1.在.env和.env.behat文件中设置APP_KEY参数  2.修复FeatureContent文件,如下所示:

 /**
 * @When I press the :arg1
 */
public function iPressThe($arg1)
{
    $element=$this->getSession()->getPage()->find('named', array('id_or_name', $arg1));
    $element->press();
}

答案 1 :(得分:0)

是不是要将PHP文档块解析为自定义FeatureContext方法之上?

@When I press the :submit看起来像是使用了Jhat选择器语法,Behat可能无法使用或使用。查看基础FeatureContext类中的类似示例。