Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testes Automatizados com Codeception

Igor Duarte
December 06, 2019

Testes Automatizados com Codeception

Evento: PHP Conference Brasil 2019
Codeception é um incrível framework opensource que contem as principais ferramentas de automação de testes do mercado.
Com ele é possível escrever testes unitários, de integração e aceitação.
Nessa apresentação vamos ver como é possível criar e executar testes em sua aplicação PHP.

Igor Duarte

December 06, 2019
Tweet

More Decks by Igor Duarte

Other Decks in Technology

Transcript

  1. • Sistemas de Informação - ULBRA • Software Developer •

    Developer há 6 anos • Coordenador da Comunidade • Palestrante e Escritor • Criador de ElePHPants • Gamer nas horas vagas ;) Igor Santos
  2. • Motivação • Testes Automatizados • codeception ◦ Caso de

    Uso ◦ Implementação na Prática ◦ Code Coverage • Menção Honrosa • Dica Bagual Roteiro
  3. Motivação Codeception é um incrível framework opensource que contém as

    principais ferramentas de automação de testes do mercado. Com ele é possível escrever testes unitários, de integração, aceitação e de APIs. Nessa apresentação vamos ver como é possível criar e executar testes em sua aplicação PHP.
  4. Testes Automatizados Automação de testes é a utilização de ferramentas

    para controlar a execução de testes de uma aplicação, comparando os resultados esperados com resultados reais. Reduzindo a interação manual e aumentando a produtividade. Trazendo uma série de benefícios como: • Segurança após alterações críticas no sistema; • Redução de debugs • Velocidades na liberação de releases • Produtividade para os testers
  5. Métodos ApiTester ApiTester possui diversos métodos, por isso vou mencionar

    apenas alguns: $I->wantTo // Descrição curta para o teste a seguir $I->haveHttpHeader // Define um novo cabeçalho à requisição $I->sendPOST | $I->sendGET // Realiza a requisição de acordo com o verbo HTTP $I->seeResponseCodeIs // Verifica se o status code da requisição está conforme o esperado $I->seeResponseIsJson // Verifica se a resposta é um json $I->seeResponseContains // Verifica se o corpo da resposta contém determinado conteúdo $I->grabResponse // Retorna o corpo da resposta da requisição
  6. Execução dos Testes ApiTester possui diversos métodos, por isso vou

    mencionar apenas alguns: php codecept run // Executa todas as suítes de testes php codecept run api // Executa todos os testes de API php codecept run tests/api/SpeakerTestCest.php // Executa os testes de uma classe específica php codecept run tests/api/SpeakerTestCest.php --steps // Executa os testes de uma classe específica (exibindo passo a passo) php codecept run tests/api/SpeakerTestCest.php --debug // Executa os testes de uma classe específica (exibindo detalhadamente passo a passo dos dados enviados e recebidos)
  7. “Quebrando” Testes Agora imagine o seguinte cenário: Adiciona-se um novo

    campo no método de Create! O que vai acontecer no nosso teste??
  8. Pré Requisitos Neste link, temos detalhadamente como configurar o Code

    Coverage no Codeception https://medium.com/@IgorSantos17/codeception-code-coverage-ead0d3b13b14