mocking test - qa ninja conf 2016

Download Mocking Test - QA Ninja Conf 2016

Post on 23-Jan-2018

299 views

Category:

Software

1 download

Embed Size (px)

TRANSCRIPT

  1. 1. Mocking Test TESTANDO O QUE PARECE IMPOSSVEL DE SER VERIFICADO
  2. 2. Renato Groffe Microsoft Most Valuable Professional (MVP) Microsoft Technical Audience Contributor (MTAC) MCP, MCTS, OCA, ITIL, COBIT Mais de 15 anos de experincia na rea de Tecnologia Articulista e Palestrante Contatos Facebook: https://www.facebook.com/renatogroff Site: http://renatogroffe.net/ Canal .NET: https://www.facebook.com/canaldotnet LinkedIn: http://br.linkedin.com/in/renatogroffe
  3. 3. Agenda Dificuldades tcnicas na implementao e execuo de testes automatizados Mocking Test Exemplos no Visual Studio 2015
  4. 4. Sempre ser fcil testar?
  5. 5. Dificuldades tcnicas comuns Dependncias entre diferentes partes de um software Inexistncia de ambientes com configuraes especficas para testes Integraes com parceiros que no disponibilizam condies adequadas para testes O teste de determinados recursos precisa esperar pela concluso de uma ou mais funcionalidades especficas
  6. 6. Como superar ento estas dificuldades?
  7. 7. Simulando...
  8. 8. Imitando...
  9. 9. Algumas solues para testes automatizados Implementaes fake Trechos de cdigo ou classes stub para a gerao dos objetos requeridos pelos testes Estruturas normalmente descartadas em produo
  10. 10. Algumas solues para testes automatizados Mock Objects Estruturas que simulam objetos reais Enfatizam a interao entre objetos (comportamento), prevendo inclusive possveis falhas de execuo Frameworks simplificam a utilizao destas construes
  11. 11. Mocking Test em .NET
  12. 12. Moq Framework open source Simplifica a utilizao de Mocks na validao de solues construdas em .NET Permite definir o retorno de mtodos, propriedades e at a gerao de excees em tempo de execuo Dispensa a criao de Fakes e outras estruturas que seriam descartadas posteriormente
  13. 13. NSubstitute Framework tambm open source Alternativa ao uso do Moq, com um funcionamento bastante semelhante ao deste ltimo
  14. 14. E como utilizar isso em .NET? Combinando o uso do Moq ou Nsubstitute a frameworks como MS Test, NUnit, xUnit.net, SpecFlow, Selenium.... MS Test
  15. 15. Exemplos prticos
  16. 16. Caso de Estudo Consulta a um servio de crdito (via CPF) status possveis: Parmetro de envio invlido (retorno de pendncias = null) Erro de comunicao (exceo retornada ao se invocar o servio) Pessoa fsica sem Pendncias (zero itens no retorno de pendncias) Pessoa fsica inadimplente (ao menos uma pendncia encontrada) A ideia por trs do uso de Mock Objects nesta situao evitar consultas a um tipo de servio que pago as empresas que fornecem os dados no costumam disponibilizar ambientes para testes
  17. 17. Caso de Estudo
  18. 18. Dvidas?
  19. 19. Obrigado!