Agenda
● Conceitos de Testes
● Demo de Testes Unitários com XUnit
● Conceitos de Object Mock
● Demo de Testes Unitários com XUnit e Moq4
Testes automatizados?
● Prevenir erros é mais fácil do que corrigi-los.
● Testes automatizados se fundamentam no uso de ferramentas para controlar
a execução de testes de software.
● Para saber quando devemos automatizar os teste é preciso primeiro pensar
no projeto que temos em mãos e refletir se a automatização vai ser viável
para ele
● Automatizar vai ajudar a reduzir tempo? Vai suprir as demandas do cliente?
Será possível reduzir custos? A qualidade do teste manual será mantida?
Uma rápida pincelada em TDD e BDD
TDD (Test Driven Development) o Desenvolvimento Guiado por Testes
Uma rápida pincelada em TDD e BDD
● BDD (Behavior Driven Development) o Desenvolvimento Orientado ao
Comportamento
● Baseado em Linguagem Ubíqua(linguagem estruturada em torno do modelo de domínio e usada por
todos os membros da equipe para conectar todas as suas atividades com o software)
● A ideia é descrever o comportamento esperado
● Ambas as abordagens pretendem atingir o mesmo objetivo, porém com o
BDD temos a descrição de como a funcionalidade deve se comportar ao
invés de dizer o que deve ser feito tecnicamente
Diferentes tipos de testes
Unit (Testes de Unidade) : Garantir que cada parte individual esteja funcionando
bem e como deveria funcionar. Testes isolados (Você isola as camadas)
Integration (Testes de integração) : Teste de integração é verificar os
requisitos funcionais, de desempenho e de confiabilidade na modelagem do
sistema. ( Se você integra com um banco, api e etc)
Subcutaneous : Teste que opera logo abaixo da interface do usuário de um
aplicativo. Isso é particularmente valioso ao fazer testes funcionais de um
aplicativo: quando você deseja testar o comportamento de ponta a ponta, mas é
difícil testar por meio da própria interface do usuário.
UI : Testes de Interface
Seu Código está preparado?
● Testes de Negócio
● Baixo acoplamento
● Utilização de Interfaces
● Objetos Mock
● Testes de Persistência
● Camadas de Persistência que não utilizam mock são testes de integração
Arrange : Objetos de Teste , instâncias , inputs, data e etc
Act : Execução de Código, chamadas de métodos , propriedades e etc.
Assert : Checagem de resultados, testes e etc.
Mock
Objetos mock, objetos simulados ou simplesmente mock em desenvolvimento de
software são objetos que simulam o comportamento de objetos reais de forma
controlada.