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

Testes unitários com ExUnit

Testes unitários com ExUnit

Nessa talk apresento o poder do ExUnit no elixir em 3 formas diferentes.

1 - Utilizando ExUnit em um arquivo de script
2 - Utilizando ExUnit em um projeto mix
3 - Utilizando ExUnit em um projeto phoenix (Aqui tem uma informação muito importante sobre o pool de conexões no ambiente de teste)

Talk: https://www.youtube.com/watch?v=5CdHuQ2ZnUk

Allef Gomes

April 07, 2022
Tweet

More Decks by Allef Gomes

Other Decks in Programming

Transcript

  1. Sobre testes… ❏ Os sistemas, funções e trechos de código,

    todos eles têm uma entrada e uma saída prevista/desejada. Para garantir que o sistema funciona corretamente são necessário testes, manuais ou automatizados, que verificam a entrada e saída, garantindo sua previsibilidade. ❏ Sempre utilizamos testes; sejam manuais (pelo cliente, testadores ou mesmo pelo próprio desenvolvedor) ou automatizados (códigos testando códigos). ❏ No caso do elixir, com a automatização de testes, temos módulos que testam módulos.
  2. Testes automatizados… ❏ Testes unitários / de unidade ❏ Testes

    de unidade verificam automaticamente pequenas partes de um código, normalmente uma classe um módulo, aferindo sempre a qualidade do código. ❏ Testes de integrações / serviços ❏ São testes que usam diversas classes, de pacotes distintos, e podem ainda testar componentes externos, como bancos de dados. ❏ Testes de sistema / interface com o usuário ❏ Simulam, da forma mais fiel possível, uma sessão de uso do sistema por um usuário real. Como são testes de ponta a ponta (end-to-end), eles são mais caros, mais lentos e menos numerosos.
  3. Por que testamos? ❏ Provar que nosso código faz o

    que deve fazer (serve de documentação) ❏ Prevenir breaking changes ❏ Encontrar de maneira fácil onde nosso código quebra ❏ Escrever a menor quantidade de código de teste possível, sem comprometer com a qualidade dos testes
  4. Estrutura de um teste unitário 1. Configuração (setup) 2. Exercício

    (exercise) 3. Verificação (verify) 4. Desconstrução (teardown)