我试图做第一个behat测试,但是当我运行它时,我得到了TokenMis ...错误。我知道为什么。因为它没有渲染_token到我的形式。我检查有:Laravel behat CSRF令牌
$这个 - >的getSession() - > GETPAGE() - > getHtml()
和我:
<input type="hidden" name="_token" value="">
Normaly它必须是:
<input type="hidden" name="_token" value="Atf3lzQ7McA4zQorUu089X3zPsrLVRE8TvQkVOtm">
所以我的问题是我做错了什么?
我的功能看起:
Feature: User Login
To test if user can login to system
Scenario: Successful Authentication
Given I sign in "email" "pw"
Then I should be sign in
配置:
default:
autoload:
'': %paths.base%/features/bootstrap
suites:
default:
contexts:
- 'FeatureContext'
paths:
- %paths.base%/features/default.feature
user_login_module:
contexts:
- 'UserLoginContext'
paths:
- %paths.base%/features/user-login.feature
extensions:
Laracasts\Behat:
env_path: .env.laravel.behat
Behat\MinkExtension:
default_session: laravel
base_url: http://localhost:8080
laravel: ~
FeatureContext文件(UserLoginContext):
<?php
use Behat\Behat\Context\Context;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;
use Laracasts\Behat\Context\Migrator;
use Laracasts\Behat\Context\DatabaseTransactions;
use PHPUnit_Framework_Assert as PHPUnit;
class UserLoginContext extends MinkContext implements Context
{
use Migrator, DatabaseTransactions;
/**
* Initializes context.
*
* Every scenario gets its own context instance.
* You can also pass arbitrary arguments to the
* context constructor through behat.yml.
*/
public function __construct()
{
}
/**
* Loads Laravel classes
*
* @static
* @beforeSuite
* @return mixed
*/
public static function bootstrapLaravel()
{
$app = require __DIR__.'/../../bootstrap/app.php';
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
return $app;
}
/**
* @Given I sign in :email :password
*/
public function iSignIn($email, $password)
{
$this->visit('admin-panel');
$this->fillField('email', $email);
$this->fillField('password', $password);
$this->pressButton('Prisijungti');
}
/**
* @Then I should be sign in
*/
public function iShouldBeSignIn()
{
PHPUnit::assertTrue(Auth::guard('admin')->check());
//$this->assertPageAddress('admin-panel/home');
}
}
一样,用错误的变量。抛出错误未定义错误变量
嗯..当我使用硒,它打开浏览器的作品。现在我想如何让它在没有硒的情况下工作。 – Ernestyno