Skip to content
Programing

Pest v4: O Futuro dos Testes PHP com IA e Suporte Nativo a Navegadores

Published: Duration: 7:35
0:00 0:00

Transcript

Apresentadora: Juliana Santos Convidado: Rafael Brandão (Desenvolvedor Senior e Especialista em Ecossistema Laravel/PHP) Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Eu sou a Juliana Santos e estou muito empolgada com o episódio de hoje. Se você desenvolve em PHP, você sabe que a nossa vida mudou completamente nos últimos anos, né? Aquele estigma de que PHP era uma linguagem "bagunçada" ficou lá no passado, e um dos grandes responsáveis por essa virada de chave na qualidade do nosso código foi o Pest. Apresentadora: E para mergulhar fundo nessas novidades, eu trouxe um convidado que vive o ecossistema PHP intensamente. Ele é Tech Lead, entusiasta de longa data do Pest e um cara que preza pela qualidade de código acima de tudo. Seja muito bem-vindo ao Allur, Rafael Brandão! Massa ter você aqui, Rafael. Convidado: Valeu, Juliana! O prazer é todo meu. Sou fã do Allur e falar de Pest v4 é quase um hobby pra mim, cara. Eu acompanho o Pest desde o comecinho, quando ele era só uma "casca" bonita por cima do PHPUnit, e ver onde ele chegou hoje com a v4... é de explodir a cabeça de qualquer dev. Apresentadora: Pois é, Rafael! Eu sinto que o Pest v4 deixou de ser apenas um "test runner" pra virar quase um copiloto de arquitetura, né? O que mais te chamou a atenção logo de cara nesse lançamento? Convidado: Cara, foi a mudança de mentalidade. Antes, o Pest focava em deixar o teste legível. Agora, na v4, ele foca em produtividade agressiva. A ideia de que o desenvolvedor não deve gastar tempo com *boilerplate* (aquele código repetitivo) chegou ao ápice. O Pest v4 se posiciona como um assistente ativo. Ele não fica só esperando você escrever o teste e dar um erro; ele te ajuda a prever onde o erro vai acontecer antes mesmo de você rodar a aplicação. Apresentadora: E falando em ajudar a prever... a gente precisa falar do elefante na sala: a IA no Pest v4. Eu vi que agora a gente tem comandos como o `pest:ai`. Como é que isso funciona na prática? Ele realmente entende a lógica ou só cria uns testes genéricos? Convidado: Essa é a melhor parte, Ju. Não é só um "gerador de texto". A funcionalidade de IA analisa o seu código de implementação — por exemplo, um Service de pagamento complexo — e ele não gera só o "caminho feliz". Tipo, "ah, o pagamento passou, ok". Ele olha pro código e fala: "Ei, e se o gateway de pagamento retornar um timeout de rede específico?" ou "E se o usuário mandar um valor negativo que passou pela validação inicial?". Apresentadora: Caramba, então ele pega aqueles *edge cases* que a gente, na correria do prazo, acaba deixando passar? Convidado: Exatamente! No dia a dia, a gente gasta, sei lá, 30 minutos configurando o setup de um teste chato. Com o Pest v4, você roda o comando, a IA te cospe uma estrutura sólida em segundos e você gasta 5 minutos só revisando e ajustando. É um multiplicador de velocidade absurdo. Eu brinco que agora não tem mais desculpa de "não tive tempo de testar o erro X". A IA já escreveu o teste pra você, você só precisa validar. Apresentadora: Isso é muito massa! E outra coisa que sempre foi um "calcanhar de Aquiles" pra muita gente no PHP eram os testes de navegador, os famosos E2E. A gente tinha que configurar Selenium, Dusk, ou ferramentas externas em Node.js. Mas agora o Pest v4 trouxe isso pra dentro do core, né? Convidado: Nossa, Juliana, isso aqui pra mim foi o "game changer". Acabou aquela barreira de contexto. Sabe aquela coisa de você estar testando uma função de manipulação de string e, pra testar o login, ter que abrir outro framework ou configurar um servidor separado? Agora, dentro do mesmo arquivo de teste, você usa um `$this->browse()`. Apresentadora: Tipo, flui natural como se fosse um teste unitário? Convidado: Total! Você faz o `visit('/login')`, dá o `type` nos inputs, aperta o `press` e pronto. Tudo usando a sintaxe fluida do Pest que a gente já ama. O fato de estar integrado no core significa que o feedback é imediato. Você roda toda a sua suíte — unitários, integração e navegador — com um comando só. A barreira cognitiva caiu por terra, cara. É muito prazeroso de usar. Apresentadora: Eu achei sensacional também aquela parte de Architecture Presets. Explica pra gente, porque isso parece mágica pra manter o projeto organizado em times grandes. Convidado: Cara, isso é saúde mental pro Tech Lead (risos). Imagine que você tem uma regra na equipe: "Nenhum Controller pode chamar o Model diretamente, tem que passar pelo Service". Antigamente, você tinha que policiar isso no Code Review e sempre passava algo. Com o Pest v4, você escreve um teste de arquitetura em três linhas. Se alguém tentar dar um `use App\Models` dentro de um Controller, o teste quebra na hora no CI. Apresentadora: É como se o teste fosse o guardião do design do código. Convidado: Perfeito! E ele já vem com *presets*. Você pode falar: "Pest, garanta que meu projeto segue o padrão Laravel clássico" ou "garanta que não existem funções de debug tipo `dd()` esquecidas no código". Ele varre o projeto todo e te dá o diagnóstico. Isso garante a integridade do sistema a longo prazo, independente de quem entrar ou sair do time. Apresentadora: E pra fechar esse combo de funcionalidades técnicas, teve uma melhoria no Mutation Testing, certo? Muita gente confunde com cobertura de código (code coverage), mas é bem diferente, né? Convidado: É bem diferente e muito mais cruel, no bom sentido! O Code Coverage diz: "Você passou por essa linha". Mas ele não diz se o seu teste é útil. O Mutation Testing do Pest v4 entra no seu código de produção e, de propósito, muda um `>` para `>=` ou um `true` para `false`. Se o seu teste continuar passando mesmo com o código de produção "estragado", o Pest te avisa: "Ei, seu teste é fraco! Eu mudei a lógica e ele nem percebeu". Apresentadora: Nossa, é o teste que testa o teste! (risos) Convidado: Exato! É a prova de fogo. Se você tem 100% de cobertura e o Mutation Testing passa, cara, você dorme tranquilo à noite porque sabe que sua suíte de testes realmente protege o software. Apresentadora: Rafael, papo muito bom. Dá pra ver que o Pest v4 não veio pra brincadeira. Pra gente encerrar, qual dica você dá pra quem está no PHP e ainda olha pro Pest com desconfiança ou acha que o PHPUnit "raiz" já é o suficiente? Convidado: Olha, o PHPUnit é a fundação de tudo e merece todo respeito. Mas o Pest v4 é sobre felicidade e velocidade. A minha dica é: experimente a v4 em um projeto pequeno. Tente usar a IA pra gerar os primeiros casos e veja como a sintaxe de navegador é simples. O PHP hoje é uma linguagem de elite para desenvolvimento robusto, e o Pest é a ferramenta que faz a gente sentir orgulho de escrever código limpo e seguro. Não é só sobre passar teste, é sobre ter confiança pra refatorar e entregar valor mais rápido. Apresentadora: Sensacional! Gente, o recado tá dado. O futuro do PHP é agora e ele é automatizado, inteligente e, acima de tudo, prazeroso de desenvolver. Rafael, muito obrigada por compartilhar sua expertise aqui no Allur, foi um prazer conversar com você! Convidado: Valeu demais, Juliana! Até a próxima! Apresentadora: E pra você que ouviu a gente até aqui, valeu por sintonizar o Allur! Se quiser saber mais sobre o Pest v4, corre na documentação oficial deles, que é linda, por sinal. Não esquece de seguir a gente nas redes sociais e compartilhar esse episódio com aquele seu amigo dev que ainda sofre fazendo teste manual. A gente se vê no próximo episódio. Tchau!

Tags

software engineering open-source backend php testing artificial intelligence cli