我正在使用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
行post :add_item ...
是发生错误的地方。
错误消息是:
NoMethodError: undefined method `post' for #<ItemTest:0x7f0645ce1790>
对此进行研究已经提出了一些建议,其中没有一个有效。
包括&#39; actionpack&#39;在gemfile中。这并没有任何区别。
使用该行:
测试前it "some test" do
。
这已将错误更改为另一个NoMethodError,表示&#39;它&#39;是未定义的。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
您的课程应该继承自ActionController::TestCase
,而不是ActiveSupport::TestCase
。 ActionController::TestCase
为测试提供get
/ post
/ etc方法。