Explorando Microsoft Fakes
Waldyr Felix
Especialista em desenvolvimento web
Microsoft MVP e ALM Ranger
Porque testar o software
 Mais segurança nas manutenções
 Assegurar que o que estava funcionando
continuará funcionando
 Garantir que o software está cumprindo todos
os requisitos de negócio
 Melhorar qualidade do código
 Uso de boas práticas de programação
Pré requisitos para habilitar um
código para testes
 Arquitetura bem definida
 Separação de responsabilidades
 Usar interfaces
 Manter os métodos pequenos
Injeção de dependência
 Passar a dependência por parâmetro na classe
 Diminui o acoplamento entre classes
 Geralmente usa interfaces para fazer isso
 É um tipo de inversão de controle
NÃO
Injeção de dependência
Injeção de dependência
Começando com Microsoft Fakes
Stubs
 Pequeno trecho de código que pode ser
substituído por outro
 Geralmente são métodos de uma interface
 No teste são criados métodos fake no lugar da
implementação
 Serve para isolar o sistema a ser testado
 Sem stubs sem testes
Stubs
Criando um Stub com MS Fakes
Criando um Stub com MS Fakes
Lidando com dependências que
não podem ser isoladas
 Nem sempre é possível utilizar injeção de
dependência
 Sistemas legados também precisam de testes
unitários
 Métodos estáticos (static) não podem ser
tratados como stubs
 Para estes cenários temos duas opções...
Encapsular a dependência
Usar Shim Types do MS Fakes
 Torna possível testar código que antes não era
“testável”
 Intercepta a chamada em runtime para
substituir o membro
 Permite testar código que depende de
chamadas estáticas, classes seladas e até
métodos privados
Shim
Usando Shim types
Cenário testando ASP.NET MVC
DEMO, DEMO, DEMO, DEMO...
O guia do Microsoft fakes
bit.ly/VsLiBE
Agradecimentos
Waldyr Felix
Especialista em desenvolvimento web
Blog: waldyrfelix.net
Twitter: @WaldyrFelix
Email: waldyrfelix@gmail.com

Explorando Microsoft Fakes

  • 1.
    Explorando Microsoft Fakes WaldyrFelix Especialista em desenvolvimento web Microsoft MVP e ALM Ranger
  • 2.
    Porque testar osoftware  Mais segurança nas manutenções  Assegurar que o que estava funcionando continuará funcionando  Garantir que o software está cumprindo todos os requisitos de negócio  Melhorar qualidade do código  Uso de boas práticas de programação
  • 5.
    Pré requisitos parahabilitar um código para testes  Arquitetura bem definida  Separação de responsabilidades  Usar interfaces  Manter os métodos pequenos
  • 7.
    Injeção de dependência Passar a dependência por parâmetro na classe  Diminui o acoplamento entre classes  Geralmente usa interfaces para fazer isso  É um tipo de inversão de controle
  • 8.
  • 9.
  • 10.
  • 11.
    Stubs  Pequeno trechode código que pode ser substituído por outro  Geralmente são métodos de uma interface  No teste são criados métodos fake no lugar da implementação  Serve para isolar o sistema a ser testado  Sem stubs sem testes
  • 12.
  • 13.
    Criando um Stubcom MS Fakes
  • 14.
    Criando um Stubcom MS Fakes
  • 15.
    Lidando com dependênciasque não podem ser isoladas  Nem sempre é possível utilizar injeção de dependência  Sistemas legados também precisam de testes unitários  Métodos estáticos (static) não podem ser tratados como stubs  Para estes cenários temos duas opções...
  • 16.
  • 17.
    Usar Shim Typesdo MS Fakes  Torna possível testar código que antes não era “testável”  Intercepta a chamada em runtime para substituir o membro  Permite testar código que depende de chamadas estáticas, classes seladas e até métodos privados
  • 18.
  • 19.
  • 20.
    Cenário testando ASP.NETMVC DEMO, DEMO, DEMO, DEMO...
  • 21.
    O guia doMicrosoft fakes bit.ly/VsLiBE
  • 22.
    Agradecimentos Waldyr Felix Especialista emdesenvolvimento web Blog: waldyrfelix.net Twitter: @WaldyrFelix Email: waldyrfelix@gmail.com