IIC2143-2020-2 / syllabus

Syllabus de IIC2143 Ingeniería de Software 2020-2
35 stars 10 forks source link

Testing: factories y rspec #149

Closed benjavicente closed 3 years ago

benjavicente commented 3 years ago

Hola! Estoy tratando de añadir test de request con Faker y FactoryBot siguiendo el código que se mostró en clases. Al correr los test, me encuentro con el siguiente error:

Failure/Error: let(:post_params) { create(:service) }
NoMethodError:
  undefined method `create' for #<RSpec::ExampleGroups::Services::POST:0x000055d7206b9d40>

Tengo una factory :service (parecido a esto) y un controlador para Services con el método create (parecido a esto). ¿Qué puede que tenga mal?

Traté de cambiarle el nombre a la factory por otro para ver si era un problema tener un modelo del mismo nombre, pero eso no funcionó 😕

Edit: Creo que es porque estoy creando el objeto previo al testeo. ¿Como puedo hacer una factory que sea una base del objeto a testear? Como por ejemplo, "crear" un auto genérico y luego probar si falla cuando la marca es nula.

jerosalazar commented 3 years ago

Hola! Podrá ser que te falta algo en la configuración de rspec? Revisa esta issue y avisame si es algo parecido o no

benjavicente commented 3 years ago

Era lo segundo de esa issue! tenía el archivo de configuración pero no estaba incluido. Cambié { create(:service) } por { attributes_for (:service) } en el test y añadí config.include FactoryBot::Syntax::Methods a spec/rails_helper.rb y ahora me está funcionando.

Muchas gracias!