2014-07-20 72 views
1

我使用Rails 2.3.18NoMethodError:未定義的方法「後」

當運行耙第一次測試失敗,使得一些試驗的應用程序。 測試文件是:

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> 

研究這個已經泛起了一些建議,其中沒有工作過。

  1. 在gemfile中包含'actionpack'。這沒有任何區別。

  2. 使用行: it "some test" do測試前。 這已將錯誤更改爲另一個NoMethodError,表示「它」未定義。

有誰知道我該如何解決這個問題?

+4

它看起來像你試圖張貼到模型對象,這沒有任何意義。這應該是「類ItemControllerTest

+0

我試圖測試'add_item'頁面給出該項目的詳細信息時會發生什麼。至少它應該在給定的列表中增加一個項目。第一步是發佈一個新項目。這是通過名爲manager_controller.rb的控制器頁面中的'add_item'方法完成的 – radiobrain77

回答

1

你的班級應該繼承ActionController::TestCase而不是ActiveSupport::TestCase。它是ActionController::TestCase,它提供了用於測試的get/post/etc方法。

相關問題