Há várias formas de desenvolver, testar e integrar suas aplicações Rails. As opções vão desde o básico em TDD, neste caso utilizando como opções como :Test::Unit ou ZenTest, ou praticar BDD com frameworks comoRSpec, Shoulda, Cucumber ou até mesmo escrever suas próprias macros para o RSpec.
Pode ser um caminho difícil tentar encontrar a melhor ferramenta, bem como melhores práticas. O projeto Remarkable surge com a missão de simplificar a forma de fazer BDD em Rails, deixando a prática menos dolorosa.
O Remarkable é um framework construído a partir de uma DSL própria, sendo uma extensão do RSpec provendo macros e suporte a internacionalização (I18n). O framework provê ainda uma vasta coleção de RSpec matchers, podendo ser utilizadas tanto para objetos relacionados a ActiveRecord quanto ActionController.
Com o Remarkable você pode utilizar tanto a sintaxe RSpec ou Shoulda-like para o desenvolvimento de seus testes :
1) it { should validate_numericality_of(:age) .greater_than(18).only_integer }
2) it { should validate_numericality_of(:age, :greater_than => 18, :only_integer => true) }
3) should_validate_numericality_ of :age, :greater_than => 18, :only_integer => true
4) should_validate_numericality_ of :age do |m|
m.only_integer
m.greater_than 18
# Or: m.greater_than = 18
end
E também descrever facilmente os testes para os seus models :
describe Post do
should_belong_to :user
should_have_many :comments
should_have_and_belong_to_many :tags
should_validate_presence_of :body
should_validate_presence_of :title
should_validate_uniqueness_of :title, :allow_blank => true
end
Em versões futuras o framework proverá suporte para testes em objetos relacionados a ActionView. O projeto está em sua versão 3.0.10 e em constante atividade.