Testing with Playwright
Esta documentación describe el proceso para probar aplicaciones webforJ utilizando Playwright, enfocándose específicamente en el HelloWorldView
del webforj-archetype-hello-world
.
Fundamentos de la App
Para obtener más información sobre el webforj-archetype-hello-world
, consulta la sección de Introducción a los Fundamentos de la App.
Requisitos previos
Antes de escribir y ejecutar las pruebas de Playwright, asegúrate de lo siguiente:
- La aplicación webforJ está correctamente configurada y funcionando en tu servidor local.
- Has instalado:
- Las bindings de Java de Playwright.
- Un navegador compatible (Playwright puede instalar navegadores automáticamente durante la configuración).
- Maven para las dependencias del proyecto.
Configuración de Maven
Agrega las dependencias necesarias en tu pom.xml
para Playwright:
pom.xml
<dependencies>
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.49.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Ejemplo de prueba: HelloWorldView
El siguiente código demuestra una prueba basada en Playwright para el componente HelloWorldView
.
HelloWorldViewTest.java
package com.example.views;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
class HelloWorldViewTest {
static Playwright playwright = Playwright.create();
Browser browser;
Page page;
String port = System.getProperty("server.port", "8080");
@BeforeEach
void setUp() {
browser = playwright.chromium().launch();
page = browser.newPage();
page.navigate("http://localhost:" + port + "/");
}
@Test
void shouldClickButton() {
page.locator("input").fill("webforJ");
page.getByText("Say Hello").click();
assertThat(page.locator("dwc-toast").first())
.containsText("¡Bienvenido a webforJ Starter webforJ!");
}
}
Pasos clave
-
Inicializar Playwright:
- Crea una instancia de
Playwright
. - Lanza una instancia del navegador utilizando
playwright.chromium().launch()
.
- Crea una instancia de
-
Configurar el entorno de prueba:
- Abre una nueva página del navegador con
browser.newPage()
. - Navega a la página
HelloWorldView
utilizando el métodonavigate
.
- Abre una nueva página del navegador con
-
Interactuar con elementos:
- Usa los localizadores de Playwright para interactuar con elementos del DOM.
- Llena los campos de entrada utilizando
locator("input").fill()
y activa acciones usandogetByText("Say Hello").click()
.
-
Afirmaciones:
- Verifica el mensaje de toast mostrado con
PlaywrightAssertions.assertThat()
.
- Verifica el mensaje de toast mostrado con
-
Teardown:
- Playwright maneja automáticamente la limpieza del navegador cuando la prueba concluye. Para limpieza manual, puedes cerrar el navegador utilizando
browser.close()
.
- Playwright maneja automáticamente la limpieza del navegador cuando la prueba concluye. Para limpieza manual, puedes cerrar el navegador utilizando
Ejecutando pruebas
-
Inicia el servidor webforJ:
mvn jetty:run
-
Ejecuta los casos de prueba:
mvn test
Comportamiento esperado
- Al visitar
http://localhost:<port>/
, se carga la páginaHelloWorldView
. - Ingresa webforJ en el campo de texto y haz clic en el botón
Say Hello
. - Debe aparecer un mensaje de toast con el texto:
¡Bienvenido a webforJ Starter webforJ!
.