Skip to content

elbformat/symfony-behat-bundle

Repository files navigation

symfony-behat-bundle

This bundle provides reusable behat contexts for symfony applications. All steps are written in present tense, as suggested on https://automationpanda.com/2021/05/11/should-gherkin-steps-use-past-present-or-future-tense/

Features

Installation

Add to your composer requirements as dev dependency.

$ composer require --dev elbformat/symfony-behat-bundle

Activate bundle in your config/bundles.php

Elbformat\SymfonyBehatBundle\ElbformatSymfonyBehatBundle::class => ['test' => true],

Use contexts in your behat.yml as you like

default:
  extensions:
    FriendsOfBehat\SymfonyExtension:
      bootstrap: tests/bootstrap.php
      kernel:
        path: src/Kernel.php
        class: App\Kernel
        environment: behat
        debug: false
  suites:
    default:
      contexts:
        - Elbformat\SymfonyBehatBundle\Context\CommandContext
        - Elbformat\SymfonyBehatBundle\Context\DateContext
        - Elbformat\SymfonyBehatBundle\Context\FormContext
        - Elbformat\SymfonyBehatBundle\Context\HtmlContext
        - Elbformat\SymfonyBehatBundle\Context\HttpContext
        - Elbformat\SymfonyBehatBundle\Context\JsonContext
        - Elbformat\SymfonyBehatBundle\Context\LoggingContext
        - Elbformat\SymfonyBehatBundle\Context\MailerContext

Mailer

To make the Test-Mailer work, you need to set the mailer dsn in config/packages/mailer.yaml

when@test:
    framework:
        mailer:
            dsn: 'test://test'

API

To not send requests to a real api, you should configure the MockClient to be used in config/packages/framework.yaml

when@test:
    framework:
        http_client:
            mock_response_factory: Elbformat\SymfonyBehatBundle\HttpClient\MockClientCallback

Examples

Examples can be found in dock/examples.md.

Updating

When updating from a previous version, see the changelog for changes.

What's next?

The next release should likely contain more tests/stability improvements.

Development

If you want to develop on the bundle you will find useful information in doc/development.md