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. Testes unitários com
    ExUnit

    View Slide

  2. Sobre mim…

    View Slide

  3. 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.

    View Slide

  4. Cadeia de testes automatizados

    View Slide

  5. 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.

    View Slide

  6. Testes unitários

    View Slide

  7. 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

    View Slide

  8. Estrutura de um teste unitário
    1. Configuração (setup)
    2. Exercício (exercise)
    3. Verificação (verify)
    4. Desconstrução (teardown)

    View Slide

  9. ExUnit
    ❏ Framework para testes unitários
    em elixir
    ❏ Bastante simples de configurar.

    View Slide

  10. Vamos pro código…

    View Slide

  11. Referências
    ❏ https://engsoftmoderna.info/cap8.html
    ❏ https://pragprog.com/titles/lmelixir/testing-elixir/
    ❏ https://elixir-lang.org/docs.html
    ❏ https://hexdocs.pm/ex_unit/1.12/ExUnit.html
    ❏ https://elixirschool.com/en/

    View Slide