Стиль Given When Then тесно связан со стилем Arrange Act Assert для модульного тестирования.
Вот пример:
[Test]
public void RotateAngle_Given27Degress_Returns64Degrees()
{
//Arrange or Given
var someAngleClass = new Angle();
//Act or When
var result = someAngleClass.Rotate(27);
//Assert or Then
Assert.That(result, Is.EqualTo(64));
}
Отличительной особенностью этого стиля тестирования является то, что вам не нужно видеть базовый код, чтобы понять цель поведения.
Для получения дополнительной информации вот некоторые сайты:
http://www.arrangeactassert.com/
Блог Роя Ошерова
http://www.artofunittesting.com/