Upload
lucas-caton
View
1.593
Download
1
Embed Size (px)
DESCRIPTION
Bio Labs #1
Citation preview
Por que testar é importantee algumas boas práticas.
Lucas Catón
Bio Labs #1
Por que testar é importante?
Garantir que nada que fizemos anteriormente irá quebrar.
Por que testar é importante?
Facilidade para refatorar código.
Por que testar é importante?
Entendimento do projeto.
Por que testar é importante?
Testes irão garantir que tudo funciona quando as camadas são
executadas juntas.
Por que testar é importante?
E o mais importante...
Testes são guias, os quais podem te ajudar no desenvolvimento e na qualidade do seu código.
Resumindo...
Por que testar ANTES é importante?
Simples!
Testar antes garante que você irá implementar o que foi previsto e
não o que é mais fácil.
Por que testar ANTES é importante?
Para que você não “force” o teste a passar.
!
Ferramentas para testes(em Ruby)
“A coisa importante, é claro, é que consigamos fazer as pessoas testarem, então ferramentas
não deveriam importar muito.” (DHH)
Ferramentas para testes(em Ruby)
Testes unitários
Test::Unit, RSpec, Shoulda
Ferramentas para testes(em Ruby)
Macros para testes unitários
Remarkable, Shoulda-machers
Ferramentas para testes(em Ruby)
Factories
Machinist, Factory Girl, Object Daddy
Ferramentas para testes(em Ruby)
Testes de integração
RSpec, Cucumber, Steak
Ferramentas para testes(em Ruby)
Frameworks para testes de integração
Capybara, WebRat
Ferramentas para testes(em Ruby)
Drivers para frameworks de testes de integração
Selenium Webdriver, env.js,Capybara-webkit
Ferramentas para testes(em Ruby)
Geradores de exemplos
Faker, Forgery
Ferramentas para testes(em Ruby)
Mocking de recursos externos
FakeWeb, WebMock
Ok, uma variedade de ferramentas, mas...O que e como usar?
?
Primera coisa:Saia da zona de conforto!
O que usamos hoje na
!
RSpec
Para testes de models, helpers, libs...
Shoulda-matchers
Shoulda-matchers
Factories
Factory.define :user do |u| u.name(Faker::Name.name) u.username(Faker::Internet.user_name) u.email(Faker::Internet.email) u.password('secret')end
Factory Girl + Faker
Testes de integração
RSpec + Capybara (com nova DSL)
Testes de integraçãocom JS
RSpec + Capybara (com nova DSL)+ Selenium Webdriver + browser
O que NÃO testamos!
Métodos privados
O que NÃO testamos!
Views
O que NÃO testamos!
Controllers
(coisas que já seriam cobertaspelos testes de integração)
O que NÃO testamos!
Javascript (ainda!)
Thanks!
@lucascatonhttp://blog.lucascaton.com.br
Referências
http://logbr.reflectivesurface.com/
http://cassiomarques.wordpress.com/
http://twitter.com/danielvlopes
http://akitaonrails.com/
Dúvidas?