Nuno Maduro foi o palestrante de início do Laracon US 2024 na terça-feira, revelando novos recursos impressionantes para o próximo Pest v3.0. O Pest continua a crescer em popularidade, sendo baixado mais de 18 milhões de vezes e é o framework de testes padrão no Laravel desde o V11.
O Pest v3 dá outro importante salto primeiro com três recursos impressionantes chegando ao Pest 3:
- Gerenciamento de tarefas
- Predefinições de Arquitetura
- Teste de mutação
Vamos estudar cada um desses recursos compartilhados no Laracon US com mais detalhes:
Sua visita nos ajuda a continuar oferecendo o melhor para você! href="#content-task-management" class="not-prose mr-1 text-gray-600 font-normal heading-permalink" aria-hidden="true" title="Permalink">#Gerenciamento de Tarefas
O gerenciamento de tarefas permite que você rastreie coisas uma vez que responsável, número do problema, número de solicitação de pull e notas, diretamente em um teste. O rastreamento de tarefas permite que você mantenha um histórico de trabalho que sempre estará disponível em seu teste:
test('some test 1', function () {
// ...
})->todo(assignee: 'paulredmond', issue: 13);
it('returns a successful response', function () {
$response = $this->get('/');
$response->assertStatus(200);
})->todo(
assignee:'paulredmond',
issue:11,
pr:1,
note:'Need to assert the response body.'
);
// Eric is a closer ☕️
test('drives always go in the fairway', function () {
// ...
})->done(assignee: 'ericlbarnes', issue: 13);
Na traço de comando, você pode filtrar testes por responsável ou problema:
$ pest --issue=11
$ pest --assignee=paulredmond --pr=1
$ pest --assignee=ericlbarnes
$ pest --issue=13
$ pest --notes # returns tests with notes
#Predefinições de Arquitetura
As predefinições de arquitetura são Sua visita nos ajuda a continuar oferecendo o melhor para você! maneira de usar rapidamente as mesmas regras de arquitetura em vários projetos e aproveitar predefinições populares uma vez que regras para Laravel, PHP, uma predefinição PHP estrita ou uma predefinição relaxada. Elas criarão mais consistência em seu código porque evitarão que você faça coisas uma vez que deixar funções de depuração uma vez que phpinfo(),
dd(),
etc.
Você pode usar essas predefinições usando o arch()->preset()
método:
// Ensures PHP functions like die(), phpinfo(), etc. are not used
arch()->preset()->php();
// Ensures functions like eval(), md5(), etc. are not used.
arch()->preset()->security();
// Preset to validate things like resourceful controller methods,
// enum organization, controller files have a `Controller` suffix, etc.
arch()->preset()->laravel();
// Preset to ensure classes are final, strict typing, etc.
arch()->preset()->strict();
// Preset to ensure strict types are not used, no final, no private methods.
arch()->preset()->relaxed();
As predefinições aceleram o desenvolvimento porque a maioria das regras que você esperaria já estão definidas para você. Cá está um exemplo da predefinição de segurança falhando devido ao uso de md5()
:
Cá está um exemplo de uso da predefinição Strict, demonstrando uma classe que não está usando a predefinição final
palavra-chave:
#Teste de mutação
Quando o teste de mutação for lançado com o Pest v3, ele vai te deixar de queixo derribado. Marque minhas palavras, quando você executar testes de mutação na sua base de código, esse recurso vai te fazer chorar, e logo você não conseguirá viver sem ele.
Mesmo que seu conjunto de testes relate 100% de cobertura, o teste de mutação ajudará você a encontrar lacunas em seus testes. Ele faz isso removendo código de sua implementação, trocando a lógica e abrindo buracos em seu código para tentar fazer seus testes falharem.
#Compatibilidade com versões anteriores
Perto do término de sua palestra, Nuno mencionou que os usuários do Pest 2 poderão atualizar sem nenhuma quebra de compatibilidade com versões anteriores. Os usuários devem poder atualizar o pacote para exigir v3
e atualizar dependências do composer. Isso é muito importante porque consertar quebras de compatibilidade na sua utensílio de teste pode ser doloroso, principalmente se você tiver muitos testes.
O horizonte do Pest é cintilante, com ferramentas produtivas que aprimoram seus testes por meio de mutações, tornam a arquitetura do seu aplicativo mais consistente e ajudam a monitorar responsáveis e problemas diretamente em seus testes.
Qual recurso te deixa mais entusiasmado? Conte-nos sobre seu predilecto mídia social aplicativo!