testes unitários

11
TESTES AUTOMATIZADOS Testes Unitários

Upload: joberto-diniz

Post on 18-Nov-2014

265 views

Category:

Technology


1 download

DESCRIPTION

Apresentação de Testes Unitários para a equipe de desenvolvimento da WebCasters

TRANSCRIPT

  • 1. TESTES AUTOMATIZADOS Testes Unitrios
  • 2. Eu no vejo nenhuma razo do por que isso no vai funcionar Escrever sistema sem testes automatizados como trabalhar em um painel de eletricidade com um garfo... Ahhhh... por isso.
  • 3. Por que testar? Como voc sabe que o seu cdigo funciona? Testes so uma maneira de ter certeza de que o SUT (System Under Test) funciona Mas como voc sabe que o seu Teste funciona? Ser que voc deve escrever teste para o seu teste? Ento por que confiamos nos testes? Porque ns vimos ele falhar Se o teste no falhar, como temos certeza de que ele est testando alguma coisa? TDD Test Driven Development Prega criar o teste antes do cdigo Rodar o teste (vai falhar) Escrever o cdigo para o teste passar
  • 4. Tipos de Testes Testes de Carga Testes de UI Testes de Desempenho Testes de Integrao Testes de Aceitao Testes Unitrios
  • 5. Teste Unitrio x Teste Integrao Teste de um nico mtodo No deve depender de nenhuma outra unidade Banco de dados, arquivos de sistemas, arquivos de configurao, WebServices, outras classes Como voc separa os testes unitrios dos testes de integrao?
  • 6. Nomenclatura nos Testes Por que padronizar nomenclatura importante? Facilita o entendimento sobre o que est sendo testado Facilita o desenvolvedor a escrever o teste Nome de classes de testes NomeClasseTestadaDeve NomeClasseTestada_NomeMetodo_Deve Nome de mtodos de testes Deve ser uma ao que a classe testada deve fazer Exemplos ConversorTransmissaoDeve LancarExcecao_QuandoTransmissaoXmlNula ConverterTransmissao_QuandoTransmissaoXmlValida CalculadorPreco_Calcular_Deve RetornarPrecoPorKilo_QuandoUnidadeForPorKilo RetornarZero_QuandoItensVazio
  • 7. Fases do Teste Existem 3 fases Criar o ambiente necessrio para realizar o teste Instanciar classes, inicializar parametros Executar o mtodo que est testando (SUT) Verificar se as condies esperadas foram satisfeitas Asserts Organizar o cdigo do teste seguindo essas fases AAA - Arrange / Act / Assert Given / When / Then Vantagens Testes mais organizados Testes mais limpos Bater o olho e saber o que e como certa funcionalidade est sendo testada Exemplo teste sem a discriminao das 3 fases CRM
  • 8. Como criar um cdigo testvel? SOLID Cdigo difcil de testar ConversorTransmissao Refatorando Inverso de Dependncia Mock Biblioteca Moq
  • 9. Outro exemplo
  • 10. Evitar Mtodos estticos DateTime.Now File.* Directory.* AppDomain.* Instanciar novas classes
  • 11. Praticando Mdulo Wowza Carrinho Sugesto DOJO