Apresentação de Testes Unitários para a equipe de desenvolvimento da WebCasters
Citation preview
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