Misplaced Pages

Behat (software)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
The topic of this article may not meet Misplaced Pages's notability guidelines for products and services. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "Behat" software – news · newspapers · books · scholar · JSTOR (July 2014) (Learn how and when to remove this message)
Developer(s)Konstantin Kudryashov
Initial release8 September 2010; 14 years ago (2010-09-08)
Stable release3.15.0 / 30 October 2024; 59 days ago (2024-10-30)
Repository
Written inPHP
Operating systemCross-platform
TypeBehavior-driven development
LicenseMIT License
Websitebehat.org

Behat is a test framework for behavior-driven development written in the PHP programming language. Behat was created by Konstantin Kudryashov and its development is hosted on GitHub.

Purpose

Behat is intended to aid communication between developers, clients and other stakeholders during a software development process. It allows the clear documentation of testable examples of the software's intended behaviour. Behat test scenarios are written with Gherkin, a business-readable domain-specific language following defined patterns.

Benefits

Tests can be run at any point new code is introduced into a codebase to confirm no regressions within the existing test coverage are introduced. It can be used to directly test php code and is often used with Selenium to remote control browsers as part of the scenarios. The browsers under remote control can take videos or screenshots of failures. Using selenium or tools like selenoid a "grid" of browsers can be remote controlled for parallel test execution. There is also a module for running php only scenarios.

Like other BDD frameworks, Behat scenarios are a series of Given, When, and Then steps that explain a business case. The definition of these steps exist within method annotations of a class that extends the BehatContext.

Behat can output test results in a number of different formats, including JUnit XML and HTML

Examples

The preconditions after "Given" correspond to the PHP method name to execute:

Feature: Simple description of this feature’s story
  Describe benefit, role and feature or user story
  Use as many lines as needed
  Background:
    Given some step run for all scenarios
  Scenario: Scenario or example description
    Given I setup preconditions with:
      | data column 1 | data column 2 |
      | alice         | bob           |
    When I press the "blue" button
    Then the result is:
    """
    A multiple line
    string of data
    """
    #comments can be added as needed
  Scenario Outline: Scenario or example description
    Given I setup config with "<setting>"
    When I push button "<button>"
    Then "<result>" happens
    Examples:
      | setting | button | result           |
      | a       | red    | there is a beep  |
      | b       | blue   | there is no beep |

References

  1. ^ "Behat/CHANGELOG.md at master · Behat/Behat". github.com. Retrieved 2021-03-27.
  2. "Cucumber Common Components". GitHub. 14 November 2021.
  3. community, Alexander Andryashin, Ivan Krutov, Kirill Merkushev and the Aerokube. "Aerokube Selenoid | A cross browser Selenium solution for Docker". aerokube.com. Retrieved 2024-02-19.{{cite web}}: CS1 maint: multiple names: authors list (link)
  4. aerokube/selenoid, Aerokube, 2024-02-17, retrieved 2024-02-19
  5. Marynicz, Daniel (2023-11-17), Daniel-Marynicz/BehatParallelExtension, retrieved 2024-02-19
  6. BDD With Behat - Tuts+ Code Tutorial. Code.tutsplus.com (2013-12-23). Retrieved on 2015-03-19.
  7. Vanmeert, Neal (2024-01-24), dutchiexl/BehatHtmlFormatterPlugin, retrieved 2024-02-19

External links

PHP
People
Resources
Implementations
Web frameworks
Testing
ORMs
IDEs
Widget toolkit
Portal:


Stub icon

This computer-programming-related article is a stub. You can help Misplaced Pages by expanding it.

Categories: