This content originally appeared on DEV Community and was authored by Shish Singh
SpecFlow is a test automation solution for .NET built upon the BDD paradigm. Use SpecFlow to define, manage and automatically execute human-readable acceptance tests in .NET projects (Full Framework and .NET Core).
SpecFlow tests are written using Gherkin, which allows you to write test cases using natural languages. SpecFlow uses the official Gherkin parser, which supports over 70 languages. These tests are then tied to your application code using so-called bindings, allowing you to execute the tests using the testing framework of your choice. You can also execute your tests using SpecFlow’s own dedicated test runner, SpecFlow+ Runner.
Prerequisites
- Basic understanding of C#
- Visual Studio 2017 or later
What is BDD
BDD is BDD (Behavior-driven development) Testing is a technique of agile software development and is as an extension of TDD. The idea is to describe how the application should behave in a very simple user/business-focused language.
What is Gherkin
Gherkin is a structured language it follows some syntax let us first see a simple scenario described in gherkin.
Feature: Search feature for users This feature is very important because it will allow users to filter products
Scenario: When a user searches, without spelling mistake, for a product name present in inventory. All the products with similar name should be displayed
Given User is on the main page of www.myshopingsite.com
When User searches for laptops
Then search page should be updated with the lists of laptops
Gherkin contains a set of keywords which define different premise of the scenario. As we can see above the colored parts are the keywords. We will discuss about the gherkin test structure in details later but the key points to note are:
The test is written in plain English which is common to all the domains of your project team.
This test is structured that makes it capable of being read in an automated way. There by creating automation tests at the same time while describing the scenario.
Setting up SpecFlow
Create a new project using the visual studio
File -> New -> ProjectSelect windows from the templates option and then select
class library.This will create a blank project with a class library having
a plain class file.Now click on the tools option on the top menu bar of the VS.
Select extension and updates.Search "SpecFlow for visual studio" latest option from
online repository.Post this please restart your visual studio instance to let
the extension added to the VS.Now open the class file and add nuget reference of
"SpecFlow" by installing it. Last step would be to add NUnit
Adapter and NUnit Framework from nuget.
Adding SpecFlow feature
Following are the steps which will help in adding the feature file of our specflow.
Right-click on the solution file and select add followed by
new item.Now select specflow feature file and create a new feature
file. While providing the name of file make sure the
extension is ".feature".Please verify a dummy feature file getting created. It
primarily holds two parts. First, holds feature tag. This
defines the need and reason of this feature file. Second, is
the scenario tag. This holds the setups required to satisfy
the test scenario. This will also be mapped to another file
call step definition file. Each statement will be mapped
with the specific step definition.Right-click on your feature file in the code editor and
select Generate Step Definitions from the popup menu.This displays a Pop Up window, which will ask to select the
statements for which Step Definition file is to be created.
Select all and click on Generate button.It will ask to specify the folder path to save the Step
Definition file, let it be a default project folder and hit
the Save button. All the statements will change the color
now, it means these Feature statements are linked with Step
Definitions.To have a look at the attached definitions, click on any
statement and press F12 button. This will open up the linked
definition file and the cursor will be pointing to the
linked definition.
Executing test files
Now to run go to Test -> Windows -> Test Explorer.
Notice, at the left side a new window is appeared called
Test Explorer. One test is also displayed in the Test
Explorer window. Now to run a Feature Test, Right-click on
the test in the Test Explorer window and select Run Selected
Tests. This will run the selected test and display the
output in the console window.
Note: We can also use XUnit instead of NUnit. Also, Always use names easily coinciding with the purpose for which we are creating it.
References
Tutorials
Official documentation
This content originally appeared on DEV Community and was authored by Shish Singh
Shish Singh | Sciencx (2023-05-11T10:58:42+00:00) Getting started with SpecFlow. Retrieved from https://www.scien.cx/2023/05/11/getting-started-with-specflow/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.