Estoy en rspec en estos días, tratando de hacer que mis modelos sean más precisos y precisos. Algunas cosas todavía son un poco raras para mí sobre rspec, así que pensé que sería bueno si alguien pudiera aclararlas.Rspec Rails - El nombre debe ser válido - algunas aclaraciones
Digamos que tengo un modelo de Usuario. Este tiene un: nombre. El nombre debe tener entre 4.15 caracteres (es un objetivo secundario, al principio debe existir). Entonces, ahora estoy pensando: ¿Cuál es la mejor manera de probar eso de una manera que asegure que esto sucederá? Para probar que un usuario debe tener un nombre, he escrito algo como esto:
describe User do
let(:user) { User.new(:name => 'lele') }
it "is not valid without a name" do
user.name.should == 'lele'
end
end
Ahora, no estoy seguro de que esto logra exactamente lo que quiero. Me parece que en realidad estoy probando Rails con este. Además, si quiero comprobar que un nombre no puede tener más de 15 caracteres y menos de 4, ¿cómo puede integrarse?
EDITAR:
¿Te gusta esto?
describe User do
let(:user) { User.new(:name => 'lele') }
it "is not valid without a name" do
user.name.should_not be_empty
end
end
¡Tenga en cuenta que todos los .create! los métodos golpean la base de datos y hacen que las pruebas sean ~ 100 veces más lentas. Puede evitar la lentitud y aún verificar la validez usando las instrucciones de @Dylan Markow a continuación. – aaandre