Создание автотестов используя SpecFlow (Cucumber для C#) для BDD подхода разработки


Подготовка пакета SpecFlow для написания тестов

Для начала работы нужно скачать и добавить референс на библиотеку SpecFlow. Это можно сделать через NuGet Package Manager.

Nuget SpecFlow

Создание SpecFlow Feature File для описания сценариев

Далее при создании нового айтема будет доступен айтем SpecFlow Feature File с расширением .feature выбираем и создаем

SpecFlow Feature File

После создания SpecFlow Feature файла мы можем видеть такую заготовку под описание сценариев
Писать сценарии в этих файлах могут как тестировщики так и аналитики и продакт овнеры. Главное чтобы учитывался подход в описании сценариев, используя такие ключевые слова как:
  • Given
  • When
  • And/But
  • Then
SpecFlow сценарии

Создаем методы для сценариев SpecFlow

Далее чтобы создать и написать логическую часть выполнения этих описаний сценариев, используя уже С# и фреймворк для автоматизации, нужно сгенерить «шаги выполнения». Это делается нажатием правой кнопки мыши в любом месте открытого .feature файла и выбором соответствующего пункта

Generate Steps SpecFlow



Далее получаем сгенеренные методы с соответствующими аттрибутами с загрушками внутри, которые далее следует удалить и уже описать шаги с помощью Селениума или иного фреймворка для автоматизации



Чтобы увидеть и запустить тесты нужно сбилдить проект и открыть Test Explorer в котором и отобразятся наши сценарии в виде тестов


Также следует помнить что теперь NUnit атрибуты не будут распознаваться при запуске Specflow тестов и вместо них следует использовать Атрибуты Specflow:
[BeforeTestRun] - [AfterTestRun]
[BeforeFeature] - [AfterFeature]
[BeforeScenario] - [AfterScenario]
[BeforeScenarioBlock] - [AfterScenarioBlock]
[BeforeStep] - [AfterStep]


Также все классы должны быть «связаны», это делается аттрибутом [Binding] который вешается на класс


0 комментариев