entanet / entanet-behat
A package to help Entanet's QA department automate features with Behat.
Installs: 4 720
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 8
Forks: 2
Open Issues: 4
Type:extension
Requires
- php: ^7.1.3
- behat/behat: ^3.5
- behat/mink: ^1.7
- behat/mink-extension: ^2.3
- behat/mink-selenium2-driver: ^1.2
- doctrine/dbal: ^2.9
- entanet/laravel-pubsub: ^4.0
- imbo/behat-api-extension: ^2.1
- laracasts/behat-laravel-extension: ^1.1
- mockery/mockery: ^1.0
- phpunit/phpunit: >=6.0
- superbalist/php-pubsub: ^2.0.0
- dev-master
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-dependabot/composer/guzzlehttp/psr7-1.8.5
- dev-dependabot/composer/doctrine/dbal-3.1.4
- dev-package-updates-versioning
- dev-laravel-7-compatibility
- dev-laravel6compatibility
- dev-pubsubComposer
- dev-additional-snippets
- dev-LoadTesting
This package is auto-updated.
Last update: 2024-11-22 01:53:46 UTC
README
This package is designed specifically for Entanet's Software QA department to aid with automation of features.
Installing
Require the entanet behat package
composer require entanet/entanet-behat --dev
Add the following to the config/app.php providers array
Superbalist\LaravelPubSub\PubSubServiceProvider::class
Publish the behat environment and YAML file
php artisan vendor:publish --provider="Entanet\Behat\BehatServiceProvider"
Check the commands available
vendor/bin/behat -dl
Usage
Table of Contents
Running
Database
Kafka
Pipeline Suite
This includes Kafka, Database and API testing. To be run as part of the deployment pipeline. A failed test will break a build. All artisan commands with pubsub will be run automatically for each scenario.
vendor/bin/behat --suite=pipeline
UI Suite
This includes UI testing. To be run locally and not within a pipeline.
vendor/bin/behat --suite=ui
Insert a row
Seed the database with rows
Given I have the following in the "users" table | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com |
Check a row exists
Check a row exists after running some code
Then I should have the following in the "users" table | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com |
Publish an event
Publish an event to a topic
When The following events are published to "user-created" | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com |
Check an event
Check an event has been created
Then The following events should be published to "user-created" | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com |
Examples
Consume an event and check that a row exists in the database
Feature: Store a person in the database In order to manipulate people in this application As people are created in other systems We will need to listen people events and store them in the database Scenario: Listen to person created event and store in the people table When The following events are published to "user-created" | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com | Then I should have the following in the "users" table | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com |
Consume an event and check that another event was published
Feature: Store a person in the database In order to manipulate people in this application As people are created in other systems We will need to listen people events and store them in the database Scenario: Listen to person created event and store in the people table When The following events are published to "user-created" | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com | Then I should have the following in the "users" table | name | email | | Tom | tomos.lloyd@cityfibre.com | | Ryan | ryan.ralphs@cityfibre.com |