Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 命名错误:未定义的方法';邮政';_Ruby On Rails_Ruby_Rake - Fatal编程技术网

Ruby on rails 命名错误:未定义的方法';邮政';

Ruby on rails 命名错误:未定义的方法';邮政';,ruby-on-rails,ruby,rake,Ruby On Rails,Ruby,Rake,我正在使用Rails 2.3.18对一个应用程序进行一些测试 运行rake时,第一次测试失败。 测试文件为: require 'test_helper' class ItemTest < ActiveSupport::TestCase test 'add_item' do assert_equal 0, Item.find(:all).size post :add_item, :item => {:name => 'Name of item',

我正在使用Rails 2.3.18对一个应用程序进行一些测试

运行rake时,第一次测试失败。 测试文件为:

require 'test_helper'

class ItemTest < ActiveSupport::TestCase
  test 'add_item' do
    assert_equal 0, Item.find(:all).size
    post :add_item, :item => {:name => 'Name of item',
                              :comment => ''}
    assert_response :redirect
    assert_redirected_to :action => 'index'
    assert_equal 1, Item.find(:all).size
  end
end
对此进行的研究提出了一些建议,但没有一个有效

  • 在GEM文件中包括“actionpack”。这没什么区别

  • 使用该行:
    它在测试之前执行“一些测试”
    。 这将错误更改为另一个命名错误,表示“it”未定义


  • 有人知道我如何解决这个问题吗?

    您的类应该继承自
    ActionController::TestCase
    ,而不是
    ActiveSupport::TestCase
    。是
    ActionController::TestCase
    为测试提供了
    get
    /
    post
    /etc方法。

    看起来您试图向模型对象发布,这没有任何意义。这应该是
    类ItemControllerTest
    ?你想测试什么?我想测试当“添加项目”页面给出项目的详细信息时会发生什么。至少应该在给定列表中添加一个项目。第一步是发布一个新项目。这是通过名为manager\u controller.rb的控制器页面中的“add\u item”方法完成的
    NoMethodError: undefined method `post' for #<ItemTest:0x7f0645ce1790>