Pepino - Características
UN Featurese puede definir como una unidad independiente o una funcionalidad de un proyecto. Tomemos un ejemplo muy común de un sitio de redes sociales. ¿Cómo es la característica de este producto / proyecto? Pocas características básicas se pueden determinar como:
Cree y elimine al usuario del sitio de redes sociales.
Funcionalidad de inicio de sesión de usuario para el sitio de redes sociales.
Compartir fotos o videos en el sitio de redes sociales.
Envío de una solicitud de amistad.
Logout.
A estas alturas, está claro que cada funcionalidad independiente del producto bajo prueba se puede calificar como una característica cuando hablamos de Pepino. Es una práctica recomendada más adelante, cuando comience a probar, que antes de derivar los scripts de prueba, debemos determinar las características que se probarán.
Una característica generalmente contiene una lista de escenarios que se probarán para esa característica. Un archivo en el que almacenamos características, descripción sobre las características y escenarios a probar se conoce comoFeature File. Veremos más acerca de los archivos de características en el siguiente capítulo.
La palabra clave para representar una característica bajo prueba en Gherkins es "Característica". La mejor práctica sugerida es escribir una pequeña descripción de la característica debajo del título de la característica en el archivo de características. Esto también satisfará la necesidad de una buena documentación.
Ejemplo
Feature - Funcionalidad de inicio de sesión para un sitio de redes sociales.
El usuario debe poder iniciar sesión en el sitio de redes sociales si el nombre de usuario y la contraseña son correctos.
El usuario debe ver el mensaje de error si el nombre de usuario y la contraseña son incorrectos.
El usuario debe navegar a la página de inicio, si el nombre de usuario y la contraseña son correctos.
Archivos de características
El archivo, en el que se escriben las pruebas de Cucumber, se conoce como feature files. Es aconsejable que haya un archivo de características separado, para cada característica bajo prueba. La extensión del archivo de características debe ser ".feature".
Se pueden crear tantos archivos de características como sea necesario. Para tener una estructura organizada, cada característica debe tener un archivo de características.
Por ejemplo:
No Señor | Característica | Característica Nombre de archivo |
---|---|---|
1 | Inicio de sesión de usuario | userLogin.feature |
2 | Comparte la publicación | sharePost.feature |
3 | Crear una cuenta | createAccount.feature |
4 | Borrar cuenta | deleteAccount.feature |
La convención de nomenclatura que se utilizará para el nombre de la función, el nombre del archivo de la función depende de la elección de la persona. No hay una regla básica en Pepino sobre los nombres.
Un archivo de características simple consta de las siguientes palabras clave / partes:
Feature - Nombre de la función bajo prueba.
Description (opcional): describe la función que se está probando.
Scenario - Cuál es el escenario de prueba.
Given - Requisito previo antes de que se ejecuten los pasos de prueba.
When - Condición específica que debe coincidir para ejecutar el siguiente paso.
Then - Qué debe suceder si se cumple la condición mencionada en CUÁNDO.
Ejemplo
Feature - Inicio de sesión de usuario en el sitio de redes sociales.
El usuario debe poder iniciar sesión en el sitio de redes sociales cuando el nombre de usuario y la contraseña sean correctos.
Al usuario se le debe mostrar un mensaje de error cuando el nombre de usuario y la contraseña son incorrectos.
El usuario debe navegar a la página de inicio si el nombre de usuario y la contraseña son correctos.
Outline - Funcionalidad de inicio de sesión para un sitio de redes sociales.
El usuario dado navega a Facebook. Cuando ingreso el nombre de usuario como "<nombre de usuario>" y la contraseña como "<contraseña>". Entonces, el inicio de sesión no debería ser exitoso.
| username | password |
| username1 | password1 |
* AND La palabra clave se utiliza para mostrar la conjunción entre dos condiciones. AND se puede utilizar con otras palabras clave como GIVEN, WHEN y THEN.
No hay detalles lógicos escritos en el archivo de características.
Definiciones de pasos
Tenemos nuestro archivo de características listo con los escenarios de prueba definidos. Sin embargo, este no es el trabajo completo. Cucumber realmente no sabe qué fragmento de código se ejecutará para cualquier escenario específico descrito en un archivo de características.
Esto llama la necesidad de un archivo de definición de paso intermedio. El archivo de definición de pasos almacena el mapeo entre cada paso del escenario definido en el archivo de características con un código de función a ejecutar.
Entonces, ahora, cuando Cucumber ejecuta un paso del escenario mencionado en el archivo de características, escanea el archivo de definición del paso y determina qué función debe llamarse.
Ejemplo de archivo de definición de pasos
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$"
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then"^login should be unsuccessful$"
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
Entonces, con cada función, cualquier código que desee ejecutar con cada paso de prueba (es decir, DADO / ENTONCES / CUANDO), puede escribirlo dentro del archivo de Definición de pasos. Asegúrese de que se haya definido el código / función para cada uno de los pasos.
Esta función pueden ser funciones de Java, donde podemos usar comandos de Java y Selenium para automatizar nuestros pasos de prueba.