# 12.1 ¿Qué es SpecFlow?

Specflow es una herramienta que nos permite crear nuestras pruebas como una serie de pasos escritos de forma que sean entendidos por cualquier persona con Gherkin o BDD (Behavior Driven Development), el cual cuenta con las siguientes instrucciones principales:

* Feature: Es una descripción a alto nivel para clasificar un grupo de escenario a probar.
* Scenario: Un ejemplo concreto para probar una regla de negocios.
* Given: Permite definir precondiciones para la prueba.
* And: Un paso adicional para definir tus pruebas.
* But: Otro paso adicional para tus pruebas.
* When: Paso para definir la acción de prueba a ejecutar.
* Then: Permite especificar la salida del paso anterior.

Un ejemplo sería el siguiente

```
Feature: Calculadora
       Se prueba las diferentes fuciones de una calculadora
       Suma
       Resta
       Multiplicación
       División

@mytag
Scenario: Suna 2 numeros
       Given Yo tecleo 50 en la calculadora
       And tecleo 70 en la calculadora
       When Yo presiono el boton sumar
       Then El resultado debe ser 120
```

Después con una extensión de Visual Studio tecleamos el código para cada paso, donde podemos pasar variables o una tabla con los datos de tu prueba.

De esta forma puedes documentar tu sistema y a la vez ejecutar tus pruebas de forma automática.

Puedes visitar el sitio de specflow el cual contiene mas ejemplos.

{% embed url="<https://specflow.org>" %}

También puedes revisar el siguiente link con un pdf con un resumen de los comandos y un ejemplo de un test.&#x20;

{% embed url="<https://specflow.org/wp-content/uploads/2022/03/Gherkin_CS_new.pdf>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://abi.gitbook.io/net-core/10.-pruebas-de-integracion/10.1-que-es-specflow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
