Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

184
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda