por que testar é importante e algumas boas práticas

Post on 11-Jun-2015

1.593 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Bio Labs #1

TRANSCRIPT

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

Dúvidas?

top related