Cobertura de Código: Testes de
Unidade
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
Uma rápida pincelada em TDD e BDD
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.
Frameworks de Testes .net
Demo
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.
Demo
Cobertura de Código: Testes de Unidade

Cobertura de Código: Testes de Unidade

  • 1.
    Cobertura de Código:Testes de Unidade
  • 3.
    Agenda ● Conceitos deTestes ● Demo de Testes Unitários com XUnit ● Conceitos de Object Mock ● Demo de Testes Unitários com XUnit e Moq4
  • 4.
    Testes automatizados? ● Prevenirerros é 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?
  • 5.
    Uma rápida pinceladaem TDD e BDD TDD (Test Driven Development) o Desenvolvimento Guiado por Testes
  • 6.
    Uma rápida pinceladaem 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
  • 7.
  • 8.
    Diferentes tipos detestes 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
  • 10.
    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
  • 11.
    Arrange : Objetosde 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.
  • 13.
  • 16.
  • 17.
    Mock Objetos mock, objetossimulados ou simplesmente mock em desenvolvimento de software são objetos que simulam o comportamento de objetos reais de forma controlada.
  • 18.