20.05.2016

GivenWhenThen Стиль

Original: http://martinfowler.com/bliki/GivenWhenThen.html

Мартін Фаулер
21 серпня 2013

GivenWhenThen це стиль, який представляє тести – або, як сказали б її захисники – вказавши поведінку системи за допомогою SpecificationByExample.. Це підхід, розроблений Деном Норз і Крісом Маттс як частина Behavior-Driven Development (BDD). [1] Це виглядає як структурований підхід для багатьох структур тестування, таких як огірки. Ви також можете дивитися на нього як пере формулювання тестовий шаблон з чотирьох етапів.

Основна ідея полягає в руйнуватися писати сценарій (або тест) на три секції:

*Дана частина описує стан світу, перш ніж почати поведінка якої потрібно вказати в цьому сценарії. Ви можете думати про це як про передумови до випробування.
*Коли розділ є те, що поведінка, яке ви вказуєте.
*Нарешті, то розділ описує зміни, які ви очікуєте через зазначеного поведінки.

Оскільки ми говоримо про використання прикладів як специфікації, це має сенс, щоб показати це на прикладі [2]

Характеристика: Користувач торгує акціями
Сценарій: Користувач запитує продати до того закриття торгів
З огляду на, у мене є 100 акцій MSFT акцій
І у мене є 150 акцій APPL акцій
І настав час, перш ніж закриття торгів

Коли я питаю, щоб продати 20 акцій MSFT акцій

Тоді я повинен мати 80 акцій MSFT акцій
І я повинен мати 150 акцій APPL акцій
І ордер на продаж 20 акцій MSFT акцій повинні були бути виконані

У наведеному вище прикладі використовується огірка [3], популярний спосіб написання BusinessFacingTests, але ви можете використовувати Given-When-Then стиль з будь-яким видом випробувань. Деякі люди люблять ставити Given-When-Тоді, як і коментарі, щоб відзначити неофіційні блоки всередині модульних тестів [4]. Я також бачив цю конвенцію до структури неформальній прозу.

Це зазвичай з цим підходом, щоб побачити “ANDS”, що використовуються для об’єднання декількох виразів в межах кожного розділу.

Я охарактеризував дано як опис стану попередню умову, бо саме так я вважаю за краще думати про це. Рамки тестування, проте, інтерпретує даності як набір команд для приведення системи випробуваний в нормальний стан перед виконанням команди коли. (Саме тому інші угоди про імена часто називають це “налаштування”.) Основи тестування надають різні методи для запиту тоді команди – вони повинні бути вільні від побічних ефектів.

Хоча Враховуючи-Колись Тоді стиль симптоматичного до BDD, основна ідея досить часто при написанні тестів або специфікації на прикладі. Meszaros описує картину як чотирьох етапів випробувань. Його чотири фази настройки (З урахуванням), вправи (Коли), Перевірте (Тоді) і Teardown [5]. Білл Wake придумав з формулюванням, як Arrange, Act, Assert. .
Примітки

1: У коментарях думку про Ден кредитує Іван Мур для значної кількості натхнення в найближчі з цим.

2: від Піт Ходжсон

3: Чи бути строгим він використовує Огірок, який є ім’ям DSL огірка в.

4: Тестові каркаси мають тенденцію слідувати або іменування стиль XUnit або BDD, останній, як правило, до способів імен в даній-Колись Тоді стилі.

5: Teardown не завжди потрібно при виконанні тестів (особливо, якщо ви використовуєте Automated Teardown) і не додає до великого аспекту зв’язку специфікації на прикладі. Так що це розумно, щоб побачити, що відсутня в стилі BDD

About The Author

admin

Comments are closed.