tabbi89/behat-silex-extension

Behat 的 Silex 扩展

1.0.1 2016-01-11 08:13 UTC

This package is not auto-updated.

Last update: 2024-09-18 17:38:25 UTC


README

此扩展提供了一种简单的方法来使用 Behat 测试 Silex 应用程序。如果您熟悉 Behat 的 Symfony2 扩展,那么使用此扩展将非常简单。与上述扩展类似,它使用裸 Application,因此不依赖于 Goutte 等其他任何东西,因此在使用上更快。在每个场景中,我们都有一个新的 Application 实例。扩展提供 ApplicationDictionary,允许访问您的应用程序。

Build Status

安装

composer require behat/behat behat/mink behat/mink-extension tabbi89/behat-silex-extension --dev

用法

接下来,在您的项目根目录下创建一个 behat.yml 文件,并添加以下内容:

default:
    extensions:
        Tabbi89\Behat\SilexExtension:
            kernel:
                bootstrap: app/autoload.php
                class: Tabbi89\Behat\SilexExtension\Tests\TestApp\App\Application
                env: test
                debug: true
                testSession: true
        Behat\MinkExtension:
            default_session: silex
            sessions:
                silex:
                    silex: ~

在这里,我们引用 Silex 扩展,并告诉 Behat 使用它作为默认会话。扩展允许一些基本的配置值,这些值将被传递到您的应用程序中(envdebugtestSession

如果您想将扩展与您的文件作为主要点一起使用

default:
    extensions:
        Tabbi89\Behat\SilexExtension:
            kernel:
                bootstrap: app/autoload.php
                path: app/Application.php
                env: test
                debug: true
                testSession: true
        Behat\MinkExtension:
            default_session: silex
            sessions:
                silex:
                    silex: ~

如果您对应用程序的外观有更多疑问,请检查 tests/app/* 中的示例和在 tests/behat.yml.dist 中的配置

ApplicationDictionary

只需在您的 FeatureContext 中包含 ApplicationDictionary 特性,即可访问您的应用程序

use Behat\Behat\Context;
use Behat\Behat\Context\SnippetAcceptingContext;
use Tabbi89\Behat\SilexExtension\Context\ApplicationAwareContext;
use Tabbi89\Behat\SilexExtension\Context\ApplicationDictionary;

class FeatureContext implements SnippetAcceptingContext, ApplicationAwareContext
{
    use ApplicationDictionary;

    /**
     * @Given I setup application
     */
    public function iSetupApplication()
    {
        $session = $this->getService('session');
        $application = $this->getApp();
        // ...
    }
}

许可证

此捆绑包采用 MIT 许可证。