pavlakis / slim-behat-extension
Slim 3 Behat 扩展
1.0.2
2017-10-08 19:38 UTC
Requires
- php: >=5.4
- behat/behat: ~3.0
- behat/mink-browserkit-driver: ~1.2
- symfony/http-kernel: ^3.0
Requires (Dev)
- behat/mink-extension: ~2.0
- phpspec/phpspec: ~2.1
- slim/slim: ^3.0
- symfony/symfony: ~2.6
This package is auto-updated.
Last update: 2024-09-15 01:36:16 UTC
README
本扩展是基于Behat Laravel 扩展编写的
可以通过 Packagist 使用 composer 安装
composer require --dev pavlakis/slim-behat-extension
在你的 behat.yml 文件中,在 extensions 部分添加扩展
Pavlakis\Slim\Behat: ~
以上是最小配置,只要你使用 Akrabat 的 Slim 3 骨架,并且 settings.php
在 app/settings.php
,behat.yml
在 tests/behat
内的默认位置。
这是默认配置预期的目录结构
- my_app_dir
|___ app
|_______ settings.php
|_______ dependencies.php
|___ tests
|_________ behat
|_____ behat.yml
如果 behat.yml
在根目录,使用以下配置
default: suites: default: contexts: - FeatureContext extensions: Pavlakis\Slim\Behat: config_file: app/settings.php dependencies_file: app/dependencies.php
除了配置(settings.php)外,所有其他参数都是可选的,但你也可以传递
config_file: ../../app/configs/settings_test.php
dependencies_file: ../../app/dependencies.php
middleware_file: ../../middleware.php
routes_file: ../../routes.php
在你的 FeatureContext 文件中
- 包含 KernelAwareContext 接口
- 包含 Pavlakis\Slim\Behat\Context\App 特性
- 使用
$this->app
访问 Slim 3 应用
特征上下文示例
使用 logger
将文本记录下来,以确保扩展工作正常。
FeatureContext.php
<?php use Behat\Behat\Tester\Exception\PendingException; use Behat\Behat\Context\Context; use Behat\Gherkin\Node\PyStringNode; use Behat\Gherkin\Node\TableNode; use Pavlakis\Slim\Behat\Context\App; use Pavlakis\Slim\Behat\Context\KernelAwareContext; class FeatureContext implements Context, KernelAwareContext { use App; /** * @Then it works */ public function itWorks() { /** @var \Psr\Log\LoggerInterface $logger */ $logger = $this->app->getContainer()->get('logger'); $logger->info("Slim-behat integration works!"); } /** * @Given I load the slim-behat extension */ public function iLoadTheSlimBehatExtension() { } }
test.feature
Feature: The extension works In order to see this extension works As a developer I need to be see something happening Scenario: The extension works Given I load the slim-behat extension Then it works
使用 Mink 的特征上下文示例
use Behat\Behat\Context\Context; use Behat\MinkExtension\Context\MinkContext; use Pavlakis\Slim\Behat\Context\App; use Pavlakis\Slim\Behat\Context\KernelAwareContext; /** * Defines application features from the specific context. */ class FeatureContext extends MinkContext implements Context, KernelAwareContext { use App; }
访问你的依赖项
$this->app->getContainer()