Skip to content

Shashi-ibuildings/MinkExtension-example

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Read this article to know more about Mink.

This repository will allow you to easily try Mink and Behat to test… wikipedia.org!

Usage

Clone this repo:

git clone https://github.com/KnpLabs/mink-demo

Now install Behat, Mink, MinkExtension and their dependencies with composer:

curl http://getcomposer.org/installer | php
php composer.phar install

Now to launch Behat, just run:

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:

vendor/bin/behat --tags ~@javascript

You should see an output like:

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 3 ways to run this suite:

  1. Using TraitedFeatureContext, which leverages php5.4 traits for clean reusability. If you have php5.4 installed, just call:

    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:

    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:

    bin/behat -p=subcontexts

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 [http://seleniumhq.org/download/](Selenium website)

  2. Run selenium jar with:

    java -jar selenium.jar > /dev/null &

Now if you run:

bin/behat

you should see an output like this:

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)

About

Example of Behat 2.4 + Mink 1.4 + MinkExtension usage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published