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/
- CommandContext to test symfony commands.
- DateContext to mock the current date.
- FormContext to test/manipulate/fill html forms.
- HtmlContext to check the DOM/plain HTTP response.
- HttpContext for simple HTTP interactions.
- JsonContext to send or check json data in request/response.
- LoggingContext to verify correct logging.
- MailerContext to check if mails were triggered.
- AbstractApiContext to help implementing custom context for external API interaction.
- AbstractDatabaseContext to help implementing custom context with database interaction.
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
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'
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 can be found in dock/examples.md.
When updating from a previous version, see the changelog for changes.
The next release should likely contain more tests/stability improvements.
If you want to develop on the bundle you will find useful information in doc/development.md