Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
la prueba rspec falló para los parámetros

Soy nuevo en Rails, estoy tratando de escribir una prueba de especificaciones para crear el método del controlador y no puedo entender cómo pasar a los usuarios de parámetros para obtener el método. aquí está el método de creación para el controlador del proyecto

 def create @project = Project.new(project_params) @project.creator = current_user byebug if params[:project][:users].any? byebug params[:project][:users].reject!(&:empty?) @project.enrolled_user = User.find( params[:project][:users]) end byebug authorize @project respond_to do |format| if @project.save format.html { redirect_to @project, notice: 'Project was successfully created.'} format.json { render :show, status: :created, location: @project} else format.html { render :new} format.json { render json: @project.errors, status: :unprocessable_entity} end end end

proyecto_spec.rb

 context "post create" do it "creates a new project" do get :new byebug post :create,params: { user: user.id } byebug expect(project1.creator).to eq(user) expect(enrolled_user.user_id).to eq(user1.id) expect(response).to be_successful end end

Terminal

 1) ProjectsController post create creates a new project Failure/Error: if params[:project][:users].any? NoMethodError: undefined method `[]' for nil:NilClass # ./app/controllers/projects_controller.rb:38:in `create' # ./spec/requests/project_spec.rb:49:in `block (3 levels) in <main>'
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Realmente necesita una prueba del sistema en lugar de una prueba del controlador para lograr su requisito de probar la funcionalidad que describe aquí. Entonces, Rspec junto con Capybara le permitirá hacer cosas como esta

Así que usa Rails g rspec:system project y haz pruebas como

 it "Can create a project" do administrator_sign_in #some system test helper that creates a user and logs a user in if needed, there are plenty of examples on how to do helpers like this. visit '/admin/projects' click_link "New" #save_and_open_page #Uncomment this if you want to see what your form fields are, unstyled, can be very useful when trying to see what to fill in and what button and links to press and click fill_in "Name", with: "New project" fill_in "Other project fields", with: "Some Data" page.check("Name of a boolean field") #check a checkbox click_button("Create Project") project = Project.find_by name: "New project" expect(current_path).to eq("/admin/projects/#{project.id}") expect(page).to have_content("Project was successfully created") expect(project.name_of_boolean_field).to be true end

Más información sobre generadores aquí

Más información sobre las pruebas del sistema aquí

Más información sobre Carpincho aquí

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda