O Page Object Model (POM) clássico resolveu a organização dos seletores, mas criou um novo problema: testes inflados e cheios de microações repetitivas.
Se você automatiza testes em Python, provavelmente já viu arquivos de teste parecidos com isso:
O padrão antigo focado em botões e cliques
page.click_button_sign_in()
page.fill_input_email("user@email")
page.fill_input_password("123456")
page.click_submit_button()
Qual é o problema aqui? O seu teste está conversando com a interface gráfica (cliques e inputs) em vez de conversar com a intenção do negócio. Se o layout do site mudar, dezenas de testes quebram em cascata.
🚀 A evolução: Page Transactions
Em vez de mapear botões isolados, o padrão Page Transactions (implementado nativamente no framework Guará) agrupa interações em transações completas e fluentes. O teste passa a ler-se como uma jornada real do usuário:
A evolução focada na jornada do negócio
(
app.given(UserInMainPage)
.when(UserLogin, username="user", secret="123")
.then(it.Contains, "dashboard")
)
No canal do Youtube 🎥 @testrockchannel, eu mostro na prática como refatorar seu projeto para esta arquitetura fluente e declarativa, sem quebrar nenhuma linha do seu código legado.
🎥 Dá o play no tutorial completo:
Para ver o passo a passo da implementação e entender como aplicar isso no seu dia a dia, assiste aí:
(Se o player não carregar por aqui, sem problemas: é só clicar neste link para ver direto no YouTube).
O que achou dessa estrutura? Já passou raiva tentando sincronizar BDD com código antes? Deixa seu comentário aqui embaixo para a gente trocar uma ideia!
Lembrando que tem vídeo novo sobre isso toda terça-feira, às 12h (meio-dia). Bora codar! 🔥
Top comments (0)