VAGAS DE EMPREGO

balta.io balta.io
  • Cursos
  • Carreiras
  • Para sua Empresa
  • Livros
    • Background Services
    • Blazor com .NET 8
    • Segurança em APIs
    • Futuro do C# 12
    • Nullable Types
    • Clean Code
  • Blog

Seja Premium
balta.io

  • Cursos
  • Carreiras
  • Para sua Empresa
  • Agenda
  • Livros
    • Background Services
    • Blazor com .NET 8
    • Segurança em APIs
    • Futuro do C# 12
    • Nullable Types
    • Clean Code
  • Blog
  • Player
Seja Premium

Entre ou Cadastre-se

  • Home
  • Artigos
  • Fundamentos dos Testes de Unidade


👉 Temos uma versão mais atualizada deste artigo no nosso novo Blog

Fundamentos dos Testes de Unidade

Ter uma base sólida em testes de unidade é fundamental para que você possa se mover por diversas tecnologias e linguagens, e neste artigo, vou colocar os principais fundamentos que você precisa para ser fera em testes.

Código Testável

Seja programação orientada à objetos ou programação funcional, escrever um bom código é a base para execução de testes com facilidade.

O uso de SOLID/Clean Code na OOP ou Pure Functions/outras boas práticas com JS é indispensável para criarmos um ambiente propício a testes.

Bons códigos são testados mais facilmente, tomam menos tempo, dão menos trabalho, logo são muito mais simples de serem executados.

Se você quer chegar a uma ótima cobertura de testes, passe primeiro pela base da linguagem que você utiliza, por padrões, boas práticas e um código limpo.

Saiba o que testar

Se você tentar testar tudo em sua aplicação, talvez você desanime e abandone os testes. Eu digo isto porque eventualmente vejo testes sobre entidades anêmicas ou validações simples como se um nome aceita X caracteres.

Para intuito de aprendizado eu acho excelente, quanto mais exercitar os testes, melhor. Mas se não está sobrando tempo, foque em testar o que realmente importa, como os cálculos da aplicação, validações de fluxos mais complexos e por aí vai.

Se sobrar tempo, testa o resto! Quanto mais testes, mais coberto você está, mas saber de fato o que precisa ser testado é importante.

Embora essa seja uma decisão mais de negócio, é quase que intuitivo que nossos testes sejam sobre as entidades do nosso domínio, afinal, as regras ficam lá.

Apenas atente-se para não trazer entidade irrelevantes, que poderiam ser apenas CRUD para seu domínio.

Compartilhamento e Reuso de Código

Quantas vezes você testou se um E-mail era válido? Se um CPF era válido? Pois é!

No .NET temos o NuGet e no JS o NPM, que são ótimos gerenciadores de pacote e você pode ter um para sua empresa, privado.

Sempre que falamos em Primitive Obsession e Value Objects, falamos em compartilhar exatamente este tipo de código. Quantos VOs de E-mail, CPF e afins você já criou, e quantos você compartilhou?

Compartilhamento e reuso de código afetam diretamente os testes de unidade. Quanto mais você reusa, menos testes necessita.

Sigo este princípio com o Flunt, onde temos um pacote de validações já testadas. Desta forma, não precisamos executar os testes simples, pois já são garantidos pelo framework.

O mesmo acontece com EF/NHibernate. Não testamos seus Contexts ou nada deles, pois eles já garantem que isto está funcionando.

Pense desta forma, crie, teste, distribua, e seus testes cairão pela metade!

Red, Green, Refactor

Sabendo o que temos que testar, escreva todos os testes e faça os falhar. Você vai perceber que enquanto escreve o título dos testes, virão novas ideias, novos testes a serem escritos.

Com uma certa frequência, enquanto estou desenvolvendo o domínio, me vem alguns testes na cabeça, e sempre anoto eles nos testes de unidade.

Minha recomendação é que sempre que lembrar de algo que precisa ser testado, vá até os testes daquela entidade, anote o título do teste e faça-o falhar.

Ao término da escrita do domínio e dos testes, você terá uma gama de testes, todos vermelhos, e a ideia do próximo passo, é fazê-los passarem com o mínimo de esforço possível.

Deixe tudo verde, tudo passando, e vai notar que há uma certa bagunça em seu código. Isto deve-se ao fato que escrever testes também requer uma estruturação do código.

Se simplesmente deixarmos o código acumular, uma hora pagaremos por isto, pois tal bagunça pode influenciar nos testes.

Passamos então para o Refactor, onde vamos refatorar os testes, de forma a reutilizar a massa de dados em diversos testes de unidade, criar repositórios falsos e por aí vai.

Esta é uma das técnicas que mais gosto na escrita de testes de unidade. Ela nos dá uma visão do que precisamos testar e a obrigação de criar testes bem escritos.

Cultura de Testes

Já comentei sobre cultura de testes em artigos aqui no balta.io e reforço a importância dela aqui.

Ter uma visão única da importância dos testes, como um todo na empresa, é fundamental para ter códigos testáveis.
Sinceramente, não adianta a equipe ter os melhores Devs, escrever os melhores testes, se na hora que o prazo aperta, os testes são deixados de lado. A cultura vem para evitar isto.

Resumo

Escreva códigos testáveis, saiba bem o que testar, reuse e distribua seu código testado para otimizar seus testes de unidade.

Utilize técnicas como o Red, Green, Refactor e principalmente semeie a cultura de testes na sua empresa.

Populares

Priority Queue

Priority Queue ou fila prioritária é um tipo de lista inclusa no C# 10 que permite que seus itens...


Implicit Operators no C#

Implicit Operators permitem adicionar comportamentos de conversão a objetos Built In ou complexos...


ASP.NET 5 – Autenticação e Autorização com Bearer e JWT

Este artigo atualmente utiliza a versão 5.0.0-rc.1 do ASP.NET/.NET, o que significa que ainda não...


Clean Code - Guia e Exemplos

Saiba como manter seu código limpo (Clean Code) seguindo algumas práticas sugeridas pelo Robert C...


Git e GitHub - Instalação, Configuração e Primeiros Passos

Git é um sistema de controle de versões distribuídas, enquanto GitHub é uma plataforma que tem o ...


Compartilhe este artigo



Conheça o autor

André Baltieri

André Baltieri

Microsoft MVP

Me dedico ao desenvolvimento de software desde 2003, sendo minha maior especialidade o Desenvolvimento Web. Durante esta jornada pude trabalhar presencialmente aqui no Brasil e Estados Unidos, atender remotamente times da ?ndia, Inglaterra e Holanda, receber 8x Microsoft MVP e realizar diversas consultorias em empresas e projetos de todos os tamanhos.





3.156

Aulas disponíveis

294

horas de conteúdo

76.666

Alunos matriculados

53.224

Certificados emitidos





Comece de graça agora mesmo!

Temos mais de 21 cursos totalmente de graça e todos com certificado de conclusão.

Começar


Prefere algo mais Premium?

Conheça nossos planos



Premium anual

Compra única, parcelada em até
12x no cartão de crédito


12x R$

99

,79

=R$ 1.197,44
  • 1 ano de acesso
  • Acesso à todo conteúdo
  • Emissão de Certificado
  • Tira Dúvidas Online
  • 68 cursos disponíveis
  • 10 carreiras disponíveis
  • 161 temas de tecnologia
  • Conteúdo novo todo mês
  • Encontros Premium

Começar agora

Política de privacidade



Precisa de ajuda?

Dúvidas frequentes



  • Posso começar de graça?

    Sim! Basta criar sua conta gratuita no balta.io e começar seus estudos. Nós contamos com diversos cursos TOTALMENTE gratuitos e com certificado de conclusão.

  • Vou ter que pagar algo?

    Nós temos cursos gratuitos e pagos, porém você não precisa informar nenhum dado de pagamento para começar seus estudos gratuitamente conosco. Os cursos gratuitos são completos e com certificado de conclusão, você não paga nada por eles.

    Porém, caso queira algo mais Premium , você terá acesso à diversos benefícios que vão te ajudar ainda mais em sua carreira.

  • Por onde devo começar?

    Siga SEMPRE as nossas Carreiras , elas vão te orientar em todos os sentidos. Os cursos já estão organizados em categorias e carreiras para facilitar seu aprendizado.
    Nossa sugestão para aprendizado é começar pelo Backend e seguindo para Frontend e Mobile.

    • Backend
    • Frontend
    • Mobile

  • Os cursos ensinam tudo que preciso?

    Nenhum curso no mundo vai te ensinar tudo, desculpa ser sincero! Os cursos são uma base, eles fornecem por volta de 30% do que você precisa aprender, o resto é com você, com dedicação e MUITA prática.

  • O que eu devo estudar?

    Java ou .NET? Angular ou React? Xamarin ou Flutter? A resposta é simples e direta: "Você já sabe o básico?"

    Se você ainda não sabe BEM o básico, ou seja, os fundamentos, OOP, SOLID, Clean Code, está perdendo tempo estudando Frameworks ou até coisas mais avançadas como Docker. Foque nos seus objetivos primeiro.
    Agora se você está indeciso sobre qual Framework estudar, a boa notícia é que o mercado neste momento está bem aquecido e você tem várias oportunidade. Desta forma o que levaríamos em conta para tomar esta decisão seria:

    • Já sei o básico
    • O Framework/Tecnologia tem mercado onde eu estou (região)
    • O Framework/Tecnologia é utilizado em uma empresa onde quero atual
    • O Framework/Tecnologia resolve meu problema
    • Eu gosto de utilizar o Framework/Tecnologia

  • Estou pronto para estudar no balta.io?

    Com certeza! O primeiro passo é começar e você pode fazer isto agora mesmo!

    Começar de graça

Ainda tem dúvidas?





Assine nosso Newsletter

Receba em primeira mão todas as nossas novidades.

Cadastrar


balta.io

Sobre

  • Como funciona?
  • Seja Premium
  • Agenda
  • Blog
  • Todos os cursos

Cursos

  • Frontend
  • Backend
  • Mobile
  • Fullstack

Suporte

  • Termos de uso
  • Privacidade
  • Cancelamento
  • Central de ajuda

Redes Sociais

  • Telegram
  • Facebook
  • Instagram
  • YouTube
  • Twitch
  • LinkedIn
  • Discord