Behat\Laravel 找不到提交
Behat\Laravel can't find submit
我正在尝试通过 Behat 测试我的 Laravel 应用程序。
有一个主页,其中包含姓名、电子邮件和 "Register" 按钮字段。我试图在 behat-test 中按下按钮,但出现错误 Fatal error: Call to a member function press() on null (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> </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"
输出:
Scenario: Register Test # features/regpage.feature:4
Given I am on the homepage # FeatureContext::iAmOnHomepage()
When I press the "registerButton" submit # FeatureContext::iPressTheSubmit()
Fatal error: Call to a member function press() on null (Behat\Testwork\Call\Exception\FatalThrowableError)
Then I should be on "/thanks" # FeatureContext::assertPageAddress()
--- Failed scenarios:
features/regpage.feature:4
1 scenario (1 failed)
3 steps (1 passed, 1 failed, 1 skipped)
behat.yml:
default:
extensions:
Laracasts\Behat:
# env_path: .env.behat
Behat\MinkExtension:
default_session: laravel
base_url: localhost:8000
laravel: ~
Behat 不会解析自定义 FeatureContext 方法上方的 PHP 文档块吗?
@When I press the :submit
看起来像是使用 Behat 可能不习惯或不使用的 jQuery 选择器语法。查看基础 FeatureContext
class 中的类似示例。
我通过 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();
}
我正在尝试通过 Behat 测试我的 Laravel 应用程序。 有一个主页,其中包含姓名、电子邮件和 "Register" 按钮字段。我试图在 behat-test 中按下按钮,但出现错误 Fatal error: Call to a member function press() on null (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> </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"
输出:
Scenario: Register Test # features/regpage.feature:4 Given I am on the homepage # FeatureContext::iAmOnHomepage() When I press the "registerButton" submit # FeatureContext::iPressTheSubmit() Fatal error: Call to a member function press() on null (Behat\Testwork\Call\Exception\FatalThrowableError) Then I should be on "/thanks" # FeatureContext::assertPageAddress() --- Failed scenarios: features/regpage.feature:4 1 scenario (1 failed) 3 steps (1 passed, 1 failed, 1 skipped)
behat.yml:
default:
extensions:
Laracasts\Behat:
# env_path: .env.behat
Behat\MinkExtension:
default_session: laravel
base_url: localhost:8000
laravel: ~
Behat 不会解析自定义 FeatureContext 方法上方的 PHP 文档块吗?
@When I press the :submit
看起来像是使用 Behat 可能不习惯或不使用的 jQuery 选择器语法。查看基础 FeatureContext
class 中的类似示例。
我通过 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();
}