should que describe context ruby-on-rails rspec factory-bot

ruby on rails - describe - Pruebas de validación Rspec de Factory Girl que fallan



que es rspec (1)

Deberías usar build como en el siguiente:

user = Factory.build(:user, :username=>"foo")

Porque usar el método que estás usando intentará crear un registro. Ver docs para más información.

He estado tratando de comprender las pruebas de escritura, pero tener muchos problemas ya que las pruebas nunca parecen validar la forma en que quiero que lo hagan. En particular, he estado tratando de usar Factory Girl en lugar de accesorios, como lo sugirió un reciente Railscasts y otros consejos que he visto en la red, debido a los beneficios que profesa, y eso no ha funcionado.

Por ejemplo, aquí hay una prueba Rspec simple para un modelo de usuario, que se prueba para asegurarse de que haya un nombre de usuario presente ...

describe User do it "should not be valid without a username" do user = FactoryGirl.create(:user, :username => "", :password => "secret") user.should_not be_valid end end

Y mi archivo factories.rb, si ayuda ...

FactoryGirl.define do factory :user do sequence(:username) { |n| "registered-#{n}" } password "foobar" end end

Cuando ejecuto ''rake spec'', me dice ...

1) User should not be valid without a username Failure/Error: user = FactoryGirl.create(:user, :username => "", :password => "secret") ActiveRecord::RecordInvalid: Validation failed: Username can''t be blank

Ummm ... ese es el PUNTO. Si especificé que el usuario NO debería ser válido, ¿no debería pasar esta prueba?

Si sustituyo la línea Factory Girl y configuro al usuario en la prueba con algo como ''user = User.new(:username => "", :password => "secret")'' , no es de extrañar que la prueba pase bien. Entonces, ¿por qué Factory Girl no está funcionando bien?