Ruby on rails 未定义的方法';邮政';对于Rspec

Ruby on rails 未定义的方法';邮政';对于Rspec,ruby-on-rails,rspec,saas,Ruby On Rails,Rspec,Saas,我正在学习教科书《工程软件即服务》中关于Cucumber和Rspec for RoR的教程,同时在edX.org上学习存档课程。我在与Rspec合作时遇到了问题。索引视图有一个发布到控制器方法的表单,其中唯一的字段名为:search\u terms。在movies_controller.rb中有以下方法: class MoviesController < ApplicationController ... def search_tmdb @movies = Movie.fi

我正在学习教科书《工程软件即服务》中关于Cucumber和Rspec for RoR的教程,同时在edX.org上学习存档课程。我在与Rspec合作时遇到了问题。索引视图有一个发布到控制器方法的表单,其中唯一的字段名为:search\u terms。在movies_controller.rb中有以下方法:

class MoviesController < ApplicationController
  ...
  def search_tmdb
    @movies = Movie.find_in_tmdb(params[:search_terms])
    flash[:notice] = "Movie '#{params[:search_terms]}' not found."
    redirect_to movies_path
  end
end
Rspec给了我以下错误:

NoMethodError:
       undefined method `post' for <RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xb36c92c>

结束

对于最新版本的RSpec Rails,有两个文件可用于运行规范

spec\u helper.rb
rails\u helper.rb

您可能需要使用
require'rails\u helper'
使
post
方法可用


希望这有帮助

你的spec helper中有什么?你能在spec/spec\u helper.rb文件中发布代码吗?我在我的spec\u helper文件中添加了“require'rails\u helper'”,并运行了bundle exec rspec,结果出现了加载错误。错误是/gems/activesupport-3.2.18/lib/active\u-support/dependencies.rb:251:in'require':无法加载这样的文件--rails\u-helper(LoadError)。虽然本课程在五月底结束,我在课程虚拟机上运行,但它使用的是rails 3.2。我想知道是否有一些问题源于此。找到了问题。令人尴尬的是,当我创建spec/controllers文件夹时,我将movies\u controller\u spec文件保存在spec文件夹中。将其移动到控制器文件夹解决了该问题。很抱歉给您添麻烦,谢谢您的帮助。
NoMethodError:
       undefined method `post' for <RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xb36c92c>
ENV["RAILS_ENV"] ||= 'test'

require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

RSpec.configure do |config|

  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_base_class_for_anonymous_controllers = false

  config.order = "random"