未定义的方法`get'在Minitest

时间:2014-10-29 09:02:11

标签: ruby-on-rails ruby minitest

我尝试使用MiniTest为我的RESTful API创建功能测试:     要求' test_helper'

class AutomaticTests < ActiveSupport::TestCase
  test "test1" do
    get '/'
  end
end

上面的代码会触发错误:

  

Minitest :: UnexpectedError:NoMethodError:未定义的方法`get&#39;对

     

我的test_helper.rb看起来像这样:

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require "minitest/rails"

class ActiveSupport::TestCase
  fixtures :all

  class << self
    alias :context :describe
  end
end

我怎样才能做到&#39;得到&#39;方法工作?

2 个答案:

答案 0 :(得分:1)

Get来自rack/test,因此您需要将该gem添加到您的Gemfile中:

gem 'rack-test', group: :test

然后,在您的测试文件或test_helper.rb中,添加以下行:

require "rack/test"

......和......

class ActiveSupport::TestCase
  include Rack::Test::Methods
end

您还可以使用rack-minitest gem

答案 1 :(得分:0)

您从错误的测试类继承。而不是ActiveSupport :: TestCase,而是要使用ActiveDispatch :: IntegrationTest。

class AutomaticTests < ActiveDispatch::IntegrationTest
  test "test1" do
    get '/'
  end
end

有关rails提供的测试类的详细信息,请参阅testing guide