vircom / behat3-zendframework3-extension
Behat Zend Framework 3 Integration Extension
Installs: 2 482
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.0
- behat/behat: ^3.3
- zendframework/zend-mvc: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.1
- leanphp/phpspec-code-coverage: ^3.1
- phpmd/phpmd: ^2.6
- phpspec/phpspec: ^3.2
This package is auto-updated.
Last update: 2024-10-27 23:59:24 UTC
README
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