suhm / laravel-bdd-helpers
此包最新版本(dev-master)没有可用的许可证信息。
dev-master
2014-07-07 19:22 UTC
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
This package is not auto-updated.
Last update: 2024-09-24 03:43:59 UTC
README
帮助你在 Laravel 环境下进行 BDD 的工具。
这仍然处于 WIP 阶段,但您可以在项目中自由使用它!
内容
安装
通过 Composer 安装它
"suhm/laravel-bdd-helpers": "dev-master"
Laravel Behat 上下文
Laravel Behat 上下文特质使得 Laravel Application
实例可以在您的 Behat 功能中使用。
使用方式如下
<?php use Behat\Behat\Context\SnippetAcceptingContext; use Behat\Gherkin\Node\PyStringNode; use Behat\Gherkin\Node\TableNode; /** * Behat context class. */ class FeatureContext implements SnippetAcceptingContext { use LaravelBdd\Behat\Laravel; /** * Initializes context. * * Every scenario gets its own context object. * You can also pass arbitrary arguments to the context constructor through behat.yml. */ public function __construct() { $this->prepareApplication(__DIR__.'/../../bootstrap/start.php'); } }
现在您可以使用 Application
实例,就像使用 Laravel 的默认 TestCase
一样。
环境 Behat 上下文
默认情况下,Laravel 上下文会将环境设置为 testing
。如果您需要设置其他环境,或者您没有使用 Laravel 上下文特质,但仍需要加载测试配置文件。
Environment
特质包含一个名为 setEnvironment()
的方法。第一个参数是环境名称,默认为 testing
。第二个参数是要导出的环境变量名称,默认为 APP_ENV
。
您可以设置应用程序的环境名称,并可选地导出它
<?php use Behat\Behat\Context\SnippetAcceptingContext; use Behat\Gherkin\Node\PyStringNode; use Behat\Gherkin\Node\TableNode; /** * Behat context class. */ class FeatureContext implements SnippetAcceptingContext { use LaravelBdd\Behat\Environment; use LaravelBdd\Behat\Laravel; /** * Initializes context. * * Every scenario gets its own context object. * You can also pass arbitrary arguments to the context constructor through behat.yml. */ public function __construct() { $this->setEnvironment(); // Default env is 'testing', export 'APP_ENV=testing' $this->setEnvironment('acceptance'); // Set env to 'acceptance' and export 'APP_ENV=acceptance' $this->setEnvironment('testing', 'SOMETING'); // Set env to testing and export 'SOMETHING=testing' $this->prepareApplication(__DIR__.'/../../bootstrap/start.php'); } }
HTTP 客户端 Behat 上下文
如果您需要访问路由和控制器的操作,可以使用此特质获取 Laravel HTTP 客户端的实例。
然后您可以进行如下操作
<?php use Behat\Behat\Context\SnippetAcceptingContext; use Behat\Gherkin\Node\PyStringNode; use Behat\Gherkin\Node\TableNode; /** * Behat context class. */ class FeatureContext implements SnippetAcceptingContext { use LaravelBdd\Behat\Laravel; use LaravelBdd\Behat\HttpClient; /** * Initializes context. * * Every scenario gets its own context object. * You can also pass arbitrary arguments to the context constructor through behat.yml. */ public function __construct() { $this->prepareApplication(__DIR__.'/../../bootstrap/start.php'); $this->createClient(); } /** * @When I visit :uri */ public function iVisit($uri) { $this->client->request('GET', $uri); }
真实示例
有关在 Laravel 环境下进行 BDD 的真实示例,请参阅此存储库:https://github.com/petersuhm/laravel-bdd