This repository is home of feature files in Gherkin for the Fediverse. Contributions are welcome.
Gherkin is the language for defining test cases. It has natural language syntax and is designed to provide simple documentation. In order to illustrate Gherkin and general we will use Gherkin to describe the purpose of this repository.
Feature: The fediverse-features repository A repository containing Gherking features for the Fediverse. The repository is available at https://codeberg.org/helge/fediverse-features Features can contain both things documented in the provided resources, and extra material.
Every feature file starts with the keyword
Feature: a title and a possible description block. These explain the content of the feature file. When documenting behavior specified in a document, it should be linked. Furthermore, it should be specfied which behavior is covered by the specification document and which is not.
Scenario: Finding a feature for a task Given a developer Alyssa working on the Fediverse When Alyssa is implementing http signatures Then Alyssa finds the corresponding feature "fedi/http_signatures.feature" And Alyssa can test her implementation against the feature And Alyssa can add her implementation to the corresponding list in this repository
The form of a Scenario is given by the Given-When-Then structure. Given defines the environment. When describes the task. Then asserts the results. At this point, it should be noted that the last point is not part of this repository yet, but is on the roadmap. One should note that a feature file can contain multiple Scenarios.
The current structure is that the folder feps contains test related to FEP. The folder fedi contains more general tests.
- Automation Panda: BDD 101: Introducing BDD
- Gherkin Reference at cucumber.io
- behave, python bdd test runner
- behat, php bdd test runner
- awesome-bdd, the most recent updated one, I could find
- https://codeberg.org/pzingg/fediverse-features/src/branch/elixir-tests in Elixir
- Folders features and http_tests for implementations in bovine using python.