Всем привет и всех с Наступившим. Не писал уже как месяц… Что же, затрону тему Behaviour Driven Development (BDD) и ее реализацию в .NET.
Тесты SpecFlow пишутся в виде “фича-файлов”, которые могут иметь набор сценариев. Установка и настройка довольно проста и занимает несколько минут.
Нам нужно:
- Создать новый проект в Visual Studio
- Установить SpecFlow
- Добавить SpecFlow к библиотекам проекта
- Добавить NUnit к библиотекам проекта
- Добавить NUnit Framework
Шаг 1: Создание нового проекта
Для создание проекта со SpecFlow, единственное, что нужно сделать, – это создать проект типа Class Library.
1) Для этого перейдите в File -> New -> Project.
2) Выберите соответствующий проект и назовите его “SpecFlowDemo“.
3) Новый проект должен быть создан с именем по-умолчанию “Class1.cs“.
Шаг 2 : Установка SpecFlow, NUnit Adapter и NUnit Framework
1) Первое, что мы сделаем – это установим SpecFlow для Visual Studio. Выберите Tools –> Extension and Updates..
2) Убедитесь, что Интернет подключен, введите SpecFlow в окно поиска, а потом нажмите Download.
Шаг 3 : Добавление SpecFlow к библиотекам проекта (References)
Иногда тестеры забывают об этом, потому что мы уже можем создать новый фича-файл, но не сможем добавить шаги реализация в другом классе…
1) Чтобы включить SpecFlow в библиотеки проекта выберите Tools -> NuGet Package Manager -> Manager Nuget Packages for Solutions…
2) Снова должно появится окно установки: введите SpecFlow и нажмите Enter, а потом Install.
После этого в консольном окне должно отобразится сообщение об успешной установке.
3) Подобным образом устанавливаем NUnit Adapter и NUnit Framework.
Шаги настройки теста с использованием SpecFlow
Шаг 1 : Создание фича-файла
1) Теперь, когда среда настроена, можем приступать к созданию фича-файла. Для этого в контекстном меню проекта выберите Add –> New Item.
2) Выберите SpecFlow Feature File, назовите его каким-то соответствующим именем и нажмите Add.
3) Созданный файл будет иметь следующую структуру по-умолчанию. В целях обучения оставим его без изменения.
Шаг 2 : Генерация шагов (Step Definition)
После создания сценариев в фича-файле нам следует реализовать все его шаги в другом файле, который являет собой простой C# файл со связями (Binding-атрибутами). Этот сгенерированный файл должен соответствовать шаблону сценариев.
1) Вызовите контекстное меню фича-файла и выберите опцию Generate Step Definitions.
2) Отобразится окно, которое попросит выбрать все или определенные шаги для генерации. Выберите все и нажмите кнопку Generate.
3) Также будет предложено сохранить созданный класс – выберите место по-умолчанию (или корень проекта).
4) После этого все шаги поменяют цвет. Это означает, что они связаны с методами реализации.
5) Чтобы посмотреть конкретную реализацию шага, нужно выбрать нужный и нажать F12. Это откроет связанный метод реализации.
Выполнение теста SpecFlow
1) Для отображения всех тестов вам понадобится выбрать в главном меню: Test -> Windows -> Test Explorer.
2) Обратите внимание на открывшийся Test Explorer в левой части Visual Studio. Отображается наш единственный тест.
Обратите внимание: если тест не отображается нужно сбилдить проект Build -> Build Solution. Если ничего не поменялось, выберите файл App.config и убедитесь, что параметр unitTestProvider должен включать NUnit или SpecFlow. как на скриншоте выше.
3) Для запуска Feature теста просто выберите Run Selected Tests при открытии контекстного меню теста в Test Explorer. Тест должен выполнится успешно.
Обратите внимание: Выполнить тесты мы можем также при использовании команды контекстного меню фича-файла – Run SpecFlow Scenarios. Но иногда это не срабатывает.