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.