Given-When-Then (GWT) is a semi-structured way to write down test cases. They can either be tested manually or automated as browser tests with tools like Selenium and Cucumber.

It derives its name from the three clauses used, which start with the words given, when and then. Given describes the preconditions and initial state before the start of a test and allows for any pre-test setup that may occur. When describes actions taken by a user during a test. Then describes the outcome resulting from actions taken in the when clause.

The Given-When-Then was proposed by Dan North in 2006, as part of behavior-driven development.

Example

A Given-When-Then test case for a hypothetical inventory software could be structured as follows:

See also