Библиотека, которая позволяет вам писать тесты почти на английском языке.

Вопрос или проблема

У меня есть смутное воспоминание о библиотеке C#, которая использовалась около 10 лет назад на предыдущей работе. Вы писали почти предложения на английском языке, и она подхватывала ключевые слова и что-то делала за кулисами. Вы писали примерно так:

ЕСЛИ someVar равно "1234", тогда (сделать что-то).

Я верю, что в ней была встроенная поддержка ключевых слов, таких как И, ИЛИ, ТОГДА и т. д. Другие вещи, такие как someVar в моем примере, которые были нестандартными, нужно было кодировать вручную. Вы, по сути, кодировали промежуточный слой C# между файлом, похожим на английский, и кодом, над которым выполнялись операции. Я считаю, что она использовалась для целей тестирования.

Если это кому-то знакомо, пожалуйста, поделитесь! Я искал это в интернете более часа, но безуспешно.

Specflow — это то, что я искал.
https://docs.specflow.org/projects/getting-started/en/latest/index.html

Ответ или решение

Библиотека для написания тестов на почти английском языке: SpecFlow

SpecFlow — это мощная библиотека для разработки программного обеспечения на языке C#, которая позволяет писать тесты в формате, близком к английскому языку. Она идеально подходит для автоматизации тестирования и использования в подходах, основанных на BDD (Behavior-Driven Development). В данной статье мы подробно рассмотрим особенности этой библиотеки и как она может быть полезна в вашей работе.

Преимущества SpecFlow

  1. Читаемость тестов
    Тесты, написанные с помощью SpecFlow, отличаются высокой читаемостью и понятностью. Используя синтаксис, который напоминает естественный язык, команды и сценарии становятся доступными не только техническим специалистам, но и бизнес-аналитикам, тестировщикам и другим участникам проекта. Например:

    Сценарий: Проверка значения переменной
       Дано переменная someVar равна "1234"
       Когда я проверяю значение someVar
       То должно произойти что-то
  2. Поддержка ключевых слов
    SpecFlow обеспечивает встроенную поддержку ключевых слов, таких как Дано, Когда, То и многие другие. Это позволяет вам легко выражать логику тестовых сценариев, сцепляя их в логические конструкции, такие как И и Или. Это позволяет создавать более сложные сценарии, не перегружая их техническими деталями.

  3. Гибкость и расширяемость
    Несмотря на то, что ключевые слова в SpecFlow понятны, сама логика выполнения остается на стороне разработчика. Вы можете создавать переходы и логику по своему усмотрению, благодаря чему SpecFlow становится гибким инструментом. Это означает, что специфичные для вашего проекта действия можно легко реализовать в коде C#.

  4. Интеграция с CI/CD
    SpecFlow легко интегрируется с инструментами непрерывной интеграции и доставки, что делает его отличным выбором для проектов, работающих в современных Agile-средах. Тесты могут быть автоматически исполняемыми в рамках вашего CI/CD-пайплайна.

Как начать использовать SpecFlow

  1. Установка
    SpecFlow можно установить через NuGet пакет в Visual Studio. Достаточно выполнить команду:

    Install-Package SpecFlow
  2. Создание сценариев
    Можно начать с создания файла .feature, где будут описаны ваши тестовые сценарии. Эти сценарии формулируются с использованием синтаксиса Gherkin, который помогает формировать тесты в естественном языке.

  3. Реализация шагов тестов
    بعد создания файлов сценариев необходимо создать соответствующие методы в языковой части C#. Готовые шаги нуждаются в реализации, чтобы связывать слова на «английском» с фактическими действиями в приложении.

  4. Запуск тестов
    После того как все шаги реализованы, тесты можно запускать с использованием популярного фреймворка для модульного тестирования, такого как NUnit или MSTest.

Заключение

SpecFlow является превосходным инструментом для команд, которые хотят создать тесты, легко воспринимаемые всеми участниками процесса разработки. Это позволяет улучшить коммуникацию между разработчиками и бизнесом, а также сделать процесс тестирования более структурированным и эффективным. Если вы ищете библиотеку, которая будет сочетать простоту написания с мощью C#, то SpecFlow определенно стоит рассмотреть.

Если у вас остались вопросы или вам нужна помощь в настройке SpecFlow, не стесняйтесь обращаться за поддержкой!

Оцените материал
Добавить комментарий

Капча загружается...