TESTES AUTOMATIZADOS
Testes Unitários
Eu não vejo
nenhuma razão do
por que isso não
vai funcionar
Escrever sistema sem testes
automatizados é como trabalhar em ...
Por que testar?
 Como você sabe que o seu código funciona?
 Testes são uma maneira de ter certeza de que o SUT (System U...
Tipos de Testes
 Testes de Carga
 Testes de UI
 Testes de Desempenho
 Testes de Integração
 Testes de Aceitação
 Tes...
Teste Unitário x Teste Integração
 Teste de um único método
 Não deve depender de nenhuma outra unidade
 Banco de dados...
Nomenclatura nos Testes
 Por que padronizar nomenclatura é importante?
 Facilita o entendimento sobre o que está sendo t...
Fases do Teste
 Existem 3 fases
 Criar o ambiente necessário para realizar o teste
 Instanciar classes, inicializar par...
Como criar um código testável?
 SOLID
 Código difícil de testar
 ConversorTransmissao
 Refatorando
 Inversão de Depen...
Outro exemplo
Evitar
 Métodos estáticos
 DateTime.Now
 File.*
 Directory.*
 AppDomain.*
 Instanciar novas classes
Praticando
 Módulo Wowza
 Carrinho
 Sugestão DOJO
Próximos SlideShares
Carregando em…5
×

Testes Unitários

323 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
323
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Testes Unitários

  1. 1. TESTES AUTOMATIZADOS Testes Unitários
  2. 2. Eu não vejo nenhuma razão do por que isso não vai funcionar Escrever sistema sem testes automatizados é como trabalhar em um painel de eletricidade com um garfo... Ahhhh... É por isso.
  3. 3. Por que testar?  Como você sabe que o seu código funciona?  Testes são 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?  Então por que confiamos nos testes?  Porque nós vimos ele falhar  Se o teste não falhar, como temos certeza de que ele está testando alguma coisa?  TDD  Test Driven Development  Prega criar o teste antes do código  Rodar o teste (vai falhar)  Escrever o código para o teste passar
  4. 4. Tipos de Testes  Testes de Carga  Testes de UI  Testes de Desempenho  Testes de Integração  Testes de Aceitação  Testes Unitários
  5. 5. Teste Unitário x Teste Integração  Teste de um único método  Não deve depender de nenhuma outra unidade  Banco de dados, arquivos de sistemas, arquivos de configuração, WebServices, outras classes Como você separa os testes unitários dos testes de integração?
  6. 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 métodos de testes  Deve ser uma ação que a classe testada deve fazer  Exemplos  ConversorTransmissaoDeve  LancarExcecao_QuandoTransmissaoXmlNula  ConverterTransmissao_QuandoTransmissaoXmlValida  CalculadorPreco_Calcular_Deve  RetornarPrecoPorKilo_QuandoUnidadeForPorKilo  RetornarZero_QuandoItensVazio
  7. 7. Fases do Teste  Existem 3 fases  Criar o ambiente necessário para realizar o teste  Instanciar classes, inicializar parametros  Executar o método que está testando (SUT)  Verificar se as condições esperadas foram satisfeitas  Asserts  Organizar o código 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 discriminação das 3 fases  CRM
  8. 8. Como criar um código testável?  SOLID  Código difícil de testar  ConversorTransmissao  Refatorando  Inversão de Dependência  Mock  Biblioteca Moq
  9. 9. Outro exemplo
  10. 10. Evitar  Métodos estáticos  DateTime.Now  File.*  Directory.*  AppDomain.*  Instanciar novas classes
  11. 11. Praticando  Módulo Wowza  Carrinho  Sugestão DOJO

×