Explorando Microsoft Fakes

1.171 visualizações

Publicada em

  • Seja a primeira pessoa a gostar disto

Explorando Microsoft Fakes

  1. 1. Explorando Microsoft FakesWaldyr FelixEspecialista em desenvolvimento webMicrosoft MVP e ALM Ranger
  2. 2. Porque testar o software Mais segurança nas manutenções Assegurar que o que estava funcionandocontinuará funcionando Garantir que o software está cumprindo todosos requisitos de negócio Melhorar qualidade do código Uso de boas práticas de programação
  3. 3. Pré requisitos para habilitar umcódigo para testes Arquitetura bem definida Separação de responsabilidades Usar interfaces Manter os métodos pequenos
  4. 4. 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
  5. 5. NÃOInjeção de dependência
  6. 6. Injeção de dependência
  7. 7. Começando com Microsoft Fakes
  8. 8. Stubs Pequeno trecho de código que pode sersubstituído por outro Geralmente são métodos de uma interface No teste são criados métodos fake no lugar daimplementação Serve para isolar o sistema a ser testado Sem stubs sem testes
  9. 9. Stubs
  10. 10. Criando um Stub com MS Fakes
  11. 11. Criando um Stub com MS Fakes
  12. 12. Lidando com dependências quenão podem ser isoladas Nem sempre é possível utilizar injeção dedependência Sistemas legados também precisam de testesunitários Métodos estáticos (static) não podem sertratados como stubs Para estes cenários temos duas opções...
  13. 13. Encapsular a dependência
  14. 14. Usar Shim Types do MS Fakes Torna possível testar código que antes não era“testável” Intercepta a chamada em runtime parasubstituir o membro Permite testar código que depende dechamadas estáticas, classes seladas e atémétodos privados
  15. 15. Shim
  16. 16. Usando Shim types
  17. 17. Cenário testando ASP.NET MVCDEMO, DEMO, DEMO, DEMO...
  18. 18. O guia do Microsoft fakesbit.ly/VsLiBE
  19. 19. AgradecimentosWaldyr FelixEspecialista em desenvolvimento webBlog: waldyrfelix.netTwitter: @WaldyrFelixEmail: waldyrfelix@gmail.com

×