PS: Estou utilizando I18n do Rails para a versão que eu traduzi do rails. seus erros podem estar na versão não traduzida, então o ideal é cuidar, pois seus testes podem não passar.
Validação um campo que deve ser informado.
#Imagine que User é uma classe de usuário qualquer
describe User do
it "should be have an login" do
@user = User.new
@user.save
@user.errors.on(:login).should be_eql("não pode ser em branco")#substitua essa string por seu texto customizado ou pela mensagem padrão em inglês
end
end
Esse codigo simula a gravação de uma entidade, e verifica se existe o erro. lembrando que você deve adicionar na classe user:
class User < ActiveRecord::Base
validates_presence_of :login
end
validando um número
#classe user.rb
validates_numericality_of :age, :only_integer => true
#user_spec.rb
it "should be have a valid number for age" do
@user.age = "a"
@user.save
@user.errors.on(:age).should be_eql("não é um número")
end
Validanto tamanho de um campo
it "should be invalid when the name is greater than 100" do
@user.name = "a"*101
@user.save
@user.errors.on(:name).should be_eql("é muito grande (máximo é 100 caracteres)")
end
#user.rb
validates_length_of :name, :maximum => 100
3 validações básicas para quem ta começando a mexer com o RSpec, não é lá grandes coisas, mas pode ajudar iniciantes em RoR a praticar o BDD.
[]'s
