falando sobre testes automatizados
Post on 29-Nov-2014
116 Views
Preview:
DESCRIPTION
TRANSCRIPT
Falando de Testes Breno Oliveira
“Testar pra que? O que eu fiz vai funcionar …"
–dummy programmer
Quem garante
QUEvai funcionar?
por isso testamos
murphy's law
–William Edwards Deming
“In God we Trust, all others bring data”
Não se desespere os testes estão ai para te ajudar
Testes lhe dão a confiança para a mudança
Descrevem o comportamento do software
Facilita a Adição de melhorias
Tempo de desenvolvimento
Ajudam a reduzir o número de bugs
E principalmente …
Ninguém vai te olhar com essa cara ao ver um código seu …
Quanto devemos testar?
–Uncle Bob
1 of Kent’s older wise sayings was: “Test everything that could possibly break.” I think that’s a pretty good
recipe.
keep it simple and stupid
Baby steps ftw
Testes UnitáriosTeste de funções do código independente de outras partes do sistemas
Muitas vezes escrevemos testes de unidadeQue não testam nada
Testar constante é importante
Mas talvez não com teste de unidade
Escreva um teste de integração
{ Então o que poderíamos testar daquele código? }
Verifique ao passar o valor 4111 foi gerado foi um pagamento com VISA.
Teste de IntegraçãoTesta a integração entre as funções e objetos
do sistema
garantem que suas classes comunicam-se com APIs, escrevem arquivos texto ou mesmo
gravar no banco são considerados testes de integração.
Lembre-se
Você não trabalha sozinho
TDDBDD
NO TESTSATDD
?
O que fazer então?
TDD
–Kent Beck
“Desenvolvimento guiados por testes é uma forma de administrar o medo durante a programação!”
Baby steps ftwNovamente
ERROR test_should_initialize_a_post (0:00:00.000) uninitialized constant PostTest::Post
PASS test_should_initialize_a_post
Vamos láEu sei que você pode fazer mais
Mais confiança cara
ERROR test_should_have_a_title_if_is_setted undefined method `title' for #<Post:0x0000010091dc90>
PASS test_should_have_a_title_if_is_setted
ERROR test_should_have_a_title_if_is_setted undefined method `title=' for #<Post:0x0000010107ca90>
PASS test_should_have_a_title_if_is_setted
FAIL test_should_have_a_blank_title_if_none_is_setted Expected: nil Actual: "my post”
PASS test_should_have_a_blank_title_if_none_is_setted
PASS test_should_have_a_blank_title_if_none_is_setted PASS test_should_initialize_a_postPASS test_should_have_a_title_if_is_setted
Ok … Meio idiota o exemploMas não temos tempo
:(
BDD
Desenvolvimento orientado ao comportamento
testar o comportamento da sua aplicação
mais sobre escrever especificações
escrever testes também é documentar
top related