https://github.com/behat/minkextension-example
Example of Behat 2.4 + Mink 1.4 + MinkExtension usage
https://github.com/behat/minkextension-example
Last synced: 11 months ago
JSON representation
Example of Behat 2.4 + Mink 1.4 + MinkExtension usage
- Host: GitHub
- URL: https://github.com/behat/minkextension-example
- Owner: Behat
- Archived: true
- Created: 2012-05-07T16:10:13.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2017-02-25T21:43:18.000Z (over 9 years ago)
- Last Synced: 2025-07-05T19:33:30.604Z (12 months ago)
- Language: PHP
- Size: 112 KB
- Stars: 40
- Watchers: 11
- Forks: 21
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A Behat 2.4 + Mink + 1.4 Demo
## Mink
Mink is a browser emulators abstraction layer.
It defines a basic API through which you can talk with specific browser emulator libraries.
Mink drivers define a bridge between Mink and those libraries.
**This repository will allow you to easily try Mink and Behat to test… wikipedia.org!**
## Usage
Clone this repo:
``` bash
git clone https://github.com/Behat/MinkExtension-example
```
Now install Behat, Mink, MinkExtension and their dependencies with [composer](http://getcomposer.org/):
``` bash
curl http://getcomposer.org/installer | php
php composer.phar install
```
Now to launch Behat, just run:
``` bash
bin/behat
```
Launch Behat: the two first scenarios should use Goutte.
The third one checks that the JS autocomplete field works on wikipedia: it uses Selenium WebDriver!
but lets ignore it for a quick start with `--tags` filter:
``` bash
vendor/bin/behat --tags ~@javascript
```
You should see an output like:
``` gherkin
Feature: Search
In order to see a word definition
As a website user
I need to be able to search for a word
Scenario: Searching for a page that does exist
Given I am on /wiki/Main_Page
When I fill in "search" with "Behavior Driven Development"
And I press "searchButton"
Then I should see "agile software development"
Scenario: Searching for a page that does NOT exist
Given I am on /wiki/Main_Page
When I fill in "search" with "Glory Driven Development"
And I press "searchButton"
Then I should see "Search results"
2 scenarios (2 passed)
8 steps (8 passed)
```
### Different types of contexts
There's 4 ways to run this suite:
1. Using `TraitedFeatureContext`, which leverages php5.4 traits
for clean reusability. If you have php5.4 installed, just call:
``` bash
bin/behat -p=traits
```
2. Using `SimpleFeatureContext`, which uses inheritance mechanism to
get predefined step definitions. If you prefer 5.3 and inheritance, just call:
``` bash
bin/behat -p=inheritance
```
3. Using `SubcontextedFeatureContext`, which uses subcontexts mechanism to
get predefined step definitions. If you prefer 5.3 and subcontexts, just call:
``` bash
bin/behat -p=subcontexts
```
4. Using no context. This way will use default context from extension, giving you
ability to avoid context creation altogether. Profile `no_context` uses non-existing
`bootstrap` path, so Behat will not be able to find any context class and will use
defaul `Behat\MinkExtension\Context\MinkContext`:
``` bash
bin/behat -p=no_context
```
You must choose between those 4 ways right now just for their demonstration. In reality,
Behat supports them simultaneously and you can mix them together.
### Selenium WebDriver
If you want to test `@javascript` part of feature, you'll need to install Selenium.
Selenium gives you ability to run `@javascript` tagged scenarios in real browser.
1. Download latest Selenium2 jar from the [Selenium website](http://seleniumhq.org/download/)
2. Run selenium jar with:
``` bash
java -jar selenium.jar > /dev/null &
```
Now if you run:
``` bash
bin/behat
```
you should see an output like this:
``` gherkin
Feature: Search
In order to see a word definition
As a website user
I need to be able to search for a word
Scenario: Searching for a page that does exist
Given I am on /wiki/Main_Page
When I fill in "search" with "Behavior Driven Development"
And I press "searchButton"
Then I should see "agile software development"
Scenario: Searching for a page that does NOT exist
Given I am on /wiki/Main_Page
When I fill in "search" with "Glory Driven Development"
And I press "searchButton"
Then I should see "Search results"
@javascript
Scenario: Searching for a page with autocompletion
Given I am on /wiki/Main_Page
When I fill in "search" with "Behavior Driv"
And I wait for the suggestion box to appear
Then I should see "Behavior Driven Development"
3 scenarios (3 passed)
12 steps (12 passed)
```