Estoy completamente atorado aquí, y esperando que alguien pueda señalarme en la dirección correcta. Estoy tratando de usar rspec para probar mis webroutes. He seguido el ejemplo aquí:NoMethodError: método indefinido `get 'al ejecutar rspec y hacer llamadas a get/visit
https://www.relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec
con mi archivo de especificaciones de ser nombrado: api_tests_spec.rb en la especificación/solicita carpeta.
El archivo es el siguiente:
require 'spec_helper'
describe "APITests" do
describe "GET /regions" do
it "should return a valid response" do
# Run the generator again with the --webrat flag if you want to use webrat methods/matchers
get "/regions.json"
response.status.should be(200)
#print response.body
end
end
end
Por desgracia, el mensaje de error que estoy recibiendo es el siguiente:
1) APITests GET/regiones debería devolver una válida respuesta avería/ERROR: obtener " /regions.json" NoMethodError: método no definido` get' para # # ./api_tests_spec.rb:7
¿alguien tiene alguna idea de por qué la método no se puede encontrar? Todo lo que he leído parece sugerir que algo no está siendo incluido correctamente, pero la solución siempre parece ser mover el archivo a la carpeta de solicitudes (donde el mío ya está). ¡Gracias por adelantado!
El archivo spec_helper.rb se parece a esto:
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
# ## Mock Framework
#
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = true
# If true, the base class of anonymous controllers will be inferred
# automatically. This will be the default behavior in future versions of
# rspec-rails.
config.infer_base_class_for_anonymous_controllers = false
end
¿Cómo está haciendo la prueba? ¿Qué hay en tu spec_helper? – Gazler
paquete exec rspec api_tests_spec.rb, espec_helper agregado como una edición – akhalsa