0
在rails 3應用程序中,我使用摩卡在我的功能測試中做了一些嘲弄。然而,它似乎並沒有模擬功能控制器中的類方法。摩卡沒有嘲笑功能測試中的類方法(Rails 3)
控制器代碼
class TagsController < ApplicationController
respond_to :json
def index
response = User.tags_starting_with(params[:query])
respond_with response
end
end
功能測試
class TagsControllerTest < ActionController::TestCase
context "index action with query" do
setup do
query = "A_QUERY"
get :index, :query => query, :format => "json"
@tags = ["these", "are", "test", "tags"]
User.expects(:tags_starting_with).returns(@tags).once
end
should "return JSON formatted tags array" do
tags = JSON::parse @response.body
assert_equal @tags, tags
end
end
end
的Gemfile
gem "mocha"
如果我運行這個測試,我一直運行到
- expected exactly once, not yet invoked: User.tags_starting_with(any_parameters)
如果我使用rails console test
,我可以嘲笑一個類的方法就好了,它按預期工作。
我已經通過this post並已完成Gemfile,require "false"
位。但無濟於事,它只是不想嘲笑控制器中User
的分類方法。
我試過的其他事情,如果我在測試本身做User.tags_starting_with("bla")
,期望就會過去。
因此,有關控制器中User
爲什麼沒有被正確模擬的任何想法?
之後還有我在嘲笑關於與負載路徑的Gemfile雜耍。謝謝! – pjaspers 2011-05-13 09:32:31