Given-When-Then is a style of representing tests - or as its advocates would say - specifying a system's behavior using SpecificationByExample. It's an approach developed by Daniel Terhorst-North and Chris Matts as part of Behavior-Driven Development (BDD). [1] It appears as a structuring approach for many testing frameworks such as Cucumber. You can also look at it as a reformulation of the Four-
![bliki: Given When Then](https://cdn-ak-scissors.b.st-hatena.com/image/square/cea9c6d4f82ce41fee130ef95d2d513c05646df6/height=288;version=1;width=512/https%3A%2F%2Fmartinfowler.com%2Flogo-sq.png)