codifico/parameter-bag-extension

Behat 的参数包扩展

安装次数: 281,072

依赖项: 2

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 5

公开问题: 0

类型:behat-extension

dev-master 2015-09-02 14:09 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:13:33 UTC


README

适用于 Behat 3.x

Build Status Scrutinizer Code Quality SensioLabsInsight

Latest Stable Version Latest Unstable Version License Total Downloads

为 Behat 上下文提供参数包

  • ParameterBagAwareContext 为上下文提供参数包实例

安装

php composer.phar require codifico/parameter-bag-extension:dev-master --dev

在 behat.yml 中指定其类以激活扩展

# behat.yml
default:
    # ...
    extensions:
        Codifico\ParameterBagExtension\ServiceContainer\ParameterBagExtension: ~

参数包使用

准备参数

<?php

use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Gherkin\Node\PyStringNode;
use Codifico\ParameterBagExtension\Context\ParameterBagDictionary;

class FeatureContext implements SnippetAcceptingContext
{
    use ParameterBagDictionary;

    /**
     * @Given Entity :entityName exists:
     */
    public function entityExists($entityName)
    {
        // ... create entity
        $this->getParameterBag()->set($entityName, $entity);
    }
}

使用参数

<?php

use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Gherkin\Node\PyStringNode;
use Codifico\ParameterBagExtension\Context\ParameterBagDictionary;

class AnotherFeatureContext implements SnippetAcceptingContext
{
    use ParameterBagDictionary;

    /**
     * @Then I need entity :entityName
     */
    public function iNeedEntity($entityName)
    {
        $entity = $this->getParameterBag()->get($entityName);
    }
}

占位符包使用

您还可以将其用作占位符包。要切换到占位符包,只需

 # behat.yml
 default:
     # ...
     extensions:
         Codifico\ParameterBagExtension\ServiceContainer\ParameterBagExtension:
            parameter_bag:
                class: Codifico\ParameterBagExtension\Bag\InMemoryPlaceholderBag

替换占位符

除了设置和获取占位符值外,您还可以在字符串中替换占位符

<?php

class AnotherFeatureContext implements SnippetAcceptingContext
{
    use ParameterBagDictionary;

    /**
     * @Then I should get :message
     */
    public function iShouldGet($message)
    {
        /*
         * let's assume that
         * $message = 'User USER_ID is active'
         * and placeholder bag contains value 123 under key USER_ID
         */
        $message = $this->getParameterBag()->replace($message)

        // $message = 'User 123 is active'
    }
}

版权

版权所有 (c) 2014 Marcin Dryka (drymek)。有关详细信息,请参阅 LICENSE。

感谢

扩展基于由 Przemysław Piechota (kibao)gist 中开发的解决方案。

贡献者