⚙️ 5.2 O Primeiro Teste de Sistema de Elite
Mover de um script main para uma suíte de testes profissional exige o uso de um framework de teste robusto. Utilizaremos o JUnit 5 e o AssertJ para garantir que nossas validações sejam legíveis e precisas.
🏁 Cenário: Fluxo de Cadastro de Usuário
Vamos validar se o sistema persiste e exibe corretamente um novo usuário após o preenchimento do formulário.
📄 src/test/java/…/system/UsuariosSystemTest.java
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
class UsuariosSystemTest {
private WebDriver driver;
@BeforeEach
void setup() {
WebDriverManager.chromedriver().setup();
this.driver = new ChromeDriver();
}
@AfterEach
void teardown() {
if (driver != null) driver.quit();
}
@Test
@DisplayName("Deve cadastrar um novo usuário e exibi-lo na listagem")
void deveAdicionarUmUsuario() {
driver.get("http://localhost:8080/usuarios/new");
// ✅ Interação Fluída
var nome = driver.findElement(By.name("usuario.nome"));
var email = driver.findElement(By.name("usuario.email"));
nome.sendKeys("Engenheiro de Elite");
email.sendKeys("elite@empresa.com.br");
nome.submit();
// 🛡️ Validação AssertJ: Elevando o nível da inspeção
var pageSource = driver.getPageSource();
assertThat(pageSource)
.contains("Engenheiro de Elite")
.contains("elite@empresa.com.br");
}
}📊 Ciclo de Vida do Teste E2E
- Arrange: O navegador é aberto e posicionado na URL de cadastro.
- Act: O formulário é preenchido e submetido.
- Assert: O sistema valida se os dados retornados na listagem conferem com o input.
Testes Frágeis (Flaky) ⚡
Validar o
getPageSource()é simples, mas pode falhar se palavras parecidas aparecerem em outros lugares da página. Nos próximos capítulos, veremos como validar elementos específicos usando seletores CSS e IDs únicos. 🚀
Dica de Ouro ⚡
Sempre utilize
@AfterEachcomdriver.quit(). Se o seu teste falhar no meio e você não fechar o navegador, seu computador rapidamente ficará sem memória RAM devido aos processos “zumbis” do Chrome. 🏁