SlideShare uma empresa Scribd logo
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
Explorando Microsoft Fakes
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
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
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

Mais conteúdo relacionado

PPTX
Importância dos Testes em Sistemas para Internet
PPTX
Test-Driven Development (TDD) - MSP Coding Day
PDF
Testes: existe vida antes do TDD
PPTX
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PDF
PHPExperience 2016 - Pirâmide de Testes
PPTX
Testes O que são e para que servem? - LadyTalks
PPTX
Teste agora! Não deixe para depois!
Importância dos Testes em Sistemas para Internet
Test-Driven Development (TDD) - MSP Coding Day
Testes: existe vida antes do TDD
PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
PHPExperience 2016 - Pirâmide de Testes
Testes O que são e para que servem? - LadyTalks
Teste agora! Não deixe para depois!

Mais procurados (15)

PPTX
Engenharia de Software II - Teste de segurança de software
PDF
Importância do profissional Hacker ético no mercado de trabalho
PPTX
Wpf e mvvm
PPTX
Componentização no selenium
PPTX
Testes Unitários usando TestNG
PPT
Testes de Segurança de Software (tech-ed 2008)
PDF
Teste seguranca aplicacoes web security testing
PPTX
Test-driven development & Mocking
PDF
Convenia - BPO Under the Hood
PPTX
Automação de Teste Funcionais - Selenium
PPTX
TDD no Community Launch 2010 - Christian Cunha
PPT
Testlink apresentacao
PDF
Test day 2012
PPTX
Pensando em java univali turbinando seus testes
Engenharia de Software II - Teste de segurança de software
Importância do profissional Hacker ético no mercado de trabalho
Wpf e mvvm
Componentização no selenium
Testes Unitários usando TestNG
Testes de Segurança de Software (tech-ed 2008)
Teste seguranca aplicacoes web security testing
Test-driven development & Mocking
Convenia - BPO Under the Hood
Automação de Teste Funcionais - Selenium
TDD no Community Launch 2010 - Christian Cunha
Testlink apresentacao
Test day 2012
Pensando em java univali turbinando seus testes
Anúncio

Semelhante a Explorando Microsoft Fakes (20)

PPTX
A importância de utilizar testes automatizados
PPT
Aula12 T EES UFS Testes de SW
PPT
Aula12 TEES UFS Testes de SW
PDF
Principais conceitos em testes de software
PPT
Apresentacao teste
PDF
Palestra TDD Javou! #08 2016
PDF
A importância dos testes unitários: do código legado ao pipeline de testes em...
PPT
O que é Teste de Software?
PPTX
Palestra tdd - rsjug
PPT
Introdução ao TDD
PPTX
Palestra TDD - TDC - 2016
PPTX
Palestra Teste de Software: princípios, ferramentas e carreira
PPT
Testes Funcionais
PPS
Automação de testes para equipes agile
PDF
Testes de segurança em aplicações web
PDF
Agile testing
PPTX
Eng.ª do Software - 10. Testes de software
PPT
Final Project (2013): Test-Driven Development applied on web applications
PPTX
Sobre TDD - Tech Friday da Everis Uberlândia
PPTX
Gerenciamento da Qualidade de Software 4.pptx
A importância de utilizar testes automatizados
Aula12 T EES UFS Testes de SW
Aula12 TEES UFS Testes de SW
Principais conceitos em testes de software
Apresentacao teste
Palestra TDD Javou! #08 2016
A importância dos testes unitários: do código legado ao pipeline de testes em...
O que é Teste de Software?
Palestra tdd - rsjug
Introdução ao TDD
Palestra TDD - TDC - 2016
Palestra Teste de Software: princípios, ferramentas e carreira
Testes Funcionais
Automação de testes para equipes agile
Testes de segurança em aplicações web
Agile testing
Eng.ª do Software - 10. Testes de software
Final Project (2013): Test-Driven Development applied on web applications
Sobre TDD - Tech Friday da Everis Uberlândia
Gerenciamento da Qualidade de Software 4.pptx
Anúncio

Mais de Waldyr Felix (20)

PDF
Apache Kafka: Comunicando microsserviços com performance
PDF
Kubernetes: Escalando containers do Docker
PDF
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
PDF
HTTP/2. O que você precisa saber a nova versão do HTTP.
PPTX
ECMAScript 6 / ECMAScript 2015 no Node.js
PPTX
Performance do ASP.NET Core, um comparativo com Node.js
PPTX
Ionic + Cordova para Desenvolvimento Mobile
PDF
Microservices com ASP.NET 5
PPTX
ASP.NET SignalR + SPA com AngularJS
PPTX
Escalando Aplicações com Redis
PPT
Sistema de Notificações com SignalR TDC 2014
PPTX
ASP.NET MVC 5.x
PPTX
ASP.NET MVC & Entity Framework
PPTX
ASP.NET WEB API
PPTX
Produtividade na criação de websites com ASP.NET MVC
PPTX
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
PPTX
Asp.net web api
PPTX
ASP.NET Web API
PPTX
Usando Scrum com Team Foundation Server 2012
PPTX
ASP.NET WebAPI HTTP Basic Auth
Apache Kafka: Comunicando microsserviços com performance
Kubernetes: Escalando containers do Docker
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
HTTP/2. O que você precisa saber a nova versão do HTTP.
ECMAScript 6 / ECMAScript 2015 no Node.js
Performance do ASP.NET Core, um comparativo com Node.js
Ionic + Cordova para Desenvolvimento Mobile
Microservices com ASP.NET 5
ASP.NET SignalR + SPA com AngularJS
Escalando Aplicações com Redis
Sistema de Notificações com SignalR TDC 2014
ASP.NET MVC 5.x
ASP.NET MVC & Entity Framework
ASP.NET WEB API
Produtividade na criação de websites com ASP.NET MVC
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Asp.net web api
ASP.NET Web API
Usando Scrum com Team Foundation Server 2012
ASP.NET WebAPI HTTP Basic Auth

Explorando Microsoft Fakes