22
Explorando Microsoft Fakes Waldyr Felix Especialista em desenvolvimento web Microsoft MVP e ALM Ranger

Explorando Microsoft Fakes

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Explorando Microsoft Fakes

Explorando Microsoft Fakes

Waldyr FelixEspecialista em desenvolvimento webMicrosoft MVP e ALM Ranger

Page 2: Explorando Microsoft Fakes

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

Page 3: Explorando Microsoft Fakes

Código monstro!

Page 4: Explorando Microsoft Fakes

Ninguém tem bola de cristal

Page 5: Explorando Microsoft Fakes

Pré requisitos para habilitar um código para testes

Arquitetura bem definida Separação de responsabilidades Usar interfaces Manter os métodos pequenos

Page 6: Explorando Microsoft Fakes

Arquitetura Emergente

Page 7: Explorando Microsoft Fakes

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

Page 8: Explorando Microsoft Fakes

NÃO

Injeção de dependência

Page 9: Explorando Microsoft Fakes

Injeção de dependência

Page 10: Explorando Microsoft Fakes

Começando com Microsoft Fakes

Page 11: Explorando 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

Page 12: Explorando Microsoft Fakes

Stubs

Page 13: Explorando Microsoft Fakes

Criando um Stub com MS Fakes

Page 14: Explorando Microsoft Fakes

Criando um Stub com MS Fakes

Page 15: Explorando Microsoft 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...

Page 16: Explorando Microsoft Fakes

Encapsular a dependência

Page 17: Explorando Microsoft Fakes

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

Page 18: Explorando Microsoft Fakes

Shim

Page 19: Explorando Microsoft Fakes

Usando Shim types

Page 20: Explorando Microsoft Fakes

Cenário testando ASP.NET MVCDEMO, DEMO, DEMO, DEMO...

Page 21: Explorando Microsoft Fakes

O guia do Microsoft fakes

bit.ly/VsLiBE

Page 22: Explorando Microsoft Fakes

Agradecimentos

Waldyr FelixEspecialista em desenvolvimento webBlog: waldyrfelix.netTwitter: @WaldyrFelixEmail: [email protected]