There is not much documentation and examples of drupal with behat test, so I will start with simplest. I will assume you have installed
- drupal 8 website and up and running server
- installed behat library
- installed drupal behat extension https://www.drupal.org/project/drupalextension
- have basic knowledge how behat works
and that is it.
You will write this test as FirstTest.feature, add it into your drupal_root/features/ directory and then in the same drupal_root run "vendor/bin/beaht --init" which will auto create FeatureContext.php class in features/bootstrap.
in your FirstTest.feature
Feature: First test
My first Behat try. Be patient :)
Scenario: The Drupal installer should enable the footer block
Given I am an anonymous user
Given I am on the homepage
Then I should see "Powered by Drupal"
Which should do exactly what it says, check your drupal installation for "Powered by drupal" block. I recommend you run this test with drush cutie installation http://drupaldump.com/drush-cutie-about-minute-install-full-instance-dr… or any fresh drupal installation.
After that, add a behat.yml file in drupal_root (whatever your drupal root path is) and fill it with:
default:
suites:
default:
contexts:
- FeatureContext
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\DrushContext
extensions:
Behat\MinkExtension:
goutte: ~
selenium2: ~
base_url: http://127.0.0.1:8888
Drupal\DrupalExtension:
blackbox: ~
api_driver: 'blackbox'
What is what check with behat config manual, important thing is we are using "blackbox" driver which comes frome behat drupal extension, which is enough for running our test. More info and examples here http://behat-drupal-extension.readthedocs.io/en/3.1/blackbox.html
With all that we can go to drupal_root again and type
vendor/bin/behat and out test will be run.
and you should get output like this. Simple but fun. We didn't write any PHP code as we are using all the steps available out of the box which comes as part of integration of Behat Drupal extension library. For more advanced things we will need to write some PHP methods, but that is a case for another tutorial.
? ~/Drupal/test/quick-drupal-20171108105658/drupal : vendor/bin/behat
Feature: First test
My first Behat try. Be patient :)
Scenario: The Drupal installer should enable the footer block # features/bootstrap/first.feature:4
Given I am an anonymous user # Drupal\DrupalExtension\Context\DrupalContext::assertAnonymousUser()
Given I am on the homepage # Drupal\DrupalExtension\Context\MinkContext::iAmOnHomepage()
Then I should see "Powered by Drupal" # Drupal\DrupalExtension\Context\MinkContext::assertPageContainsText()
1 scenario (1 passed)
3 steps (3 passed)