vircom/behat3-zendframework3-extension

Behat Zend Framework 3 Integration Extension

1.0.0 2017-04-17 07:33 UTC

This package is auto-updated.

Last update: 2024-04-27 22:50:21 UTC


README

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads License

This package provides a base implementation to test applications developed with Zend Framework 3 library. It able to pass to your Behat context files services, declares in your application.

Installation

composer require vircom/behat3-zendframework3-extension

Usage

Create behat.yml file

Within your project root, create behat.yml file with content below or add this code to your existing file on the root level:

default:
    extensions:
        VirCom\Behat3ZendFramework3Extension:
            configuration_path: /config/application.config.php

Parameters:

  • configuration_path - path to main Zend Framework 3 configuration file. Default to: /config/application.config.php.

Create your feature context file

Just run command:

vendor/bin/behat --init 

Now, Behat generate for your fist context file:

features/bootstrap/FeatureContext.php

Change its content to:

<?php

use Behat\Behat\Context\Context;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;

use Zend\EventManager\EventManagerInterface;

/**
 * Defines application features from the specific context.
 */
class FeatureContext implements Context
{
    /**
     * Initializes context.
     *
     * Every scenario gets its own context instance.
     * You can also pass arbitrary arguments to the
     * context constructor through behat.yml.
     */
    public function __construct(EventManagerInterface $eventManager)
    {
        echo get_class($eventManager);
    }
}

Create example feature file

Put text below to file

features/example.feature
Feature: Product basket
  In order to buy products
  As a customer
  I need to be able to put interesting products into a basket
Configure service injection within behat.yml file

Configure your context:

default:
   suites:
        default:
            contexts:
                - FeatureContext:
                    eventManager: '@EventManager'
    extensions:
        VirCom\Behat3ZendFramework3Extension:
            configuration_path: /config/application.config.php

Each defined context argument, if starts with @ character, will be resolved to matching service instance. Otherwise, will return raw parameter as string.

For example it could be registered any custom service:

My\Application\Namespace\ExampleService