codifico/parameter-bag-extension 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

codifico/parameter-bag-extension

Composer 安装命令:

composer require codifico/parameter-bag-extension

包简介

Parameter bag extension for Behat

README 文档

README

for Behat 3.x

Build Status Scrutinizer Code Quality SensioLabsInsight

Latest Stable Version Latest Unstable Version License Total Downloads

Provides parameter bag for Behat contexts:

  • ParameterBagAwareContext provides an parameter bag instance for contexts

Instalation

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

Activate extension by specifying its class in your behat.yml:

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

Parameter Bag Usage

Prepare parameter:

<?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);
    }
}

Use the parameter:

<?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);
    }
}

Placeholder Bag Usage

You can also use it as a placeholder bag. To switch to a placeholder bag just

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

Replacing placeholders

Additionally to setting and getting placeholder values you can replace placeholders in strings

<?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'
    }
}

Copyright

Copyright (c) 2014 Marcin Dryka (drymek). See LICENSE for details.

Thanks

Extension is based on a solution developed by Przemysław Piechota (kibao) in gist.

Contributors

统计信息

  • 总下载量: 303.38k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 1
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 1
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-07-14