我正试图从我的助手那里找到一个帮助方法:
# sessions_helper.rb
require 'rest_client'
module SessionsHelper
BASE_URL = "http://localhost:1234"
def current_user?(token)
sessions_url = BASE_URL + "/sessions"
headers = {"X-AuthToken" => 12345}
begin
RestClient.get(sessions_url, headers)
return true
rescue RestClient::BadRequest
return false
end
end
end
我尝试存根current_user?总是在我的单元测试中返回true:
require 'spec_helper'
describe SessionsHelper do
it "Should not get current user with random token" do
SessionsHelper.stub(:current_user?).and_return(true)
expect(current_user?(12345)).to eq(false)
end
end
但测试仍然通过(我希望它返回true)。
我是否有点想要配置存根方法的东西?
由于
答案 0 :(得分:0)
您没有在SessionsHelper
上调用该方法。您在self
上调用它。所以试着在自我上抄袭这个方法。
describe SessionsHelper do
it "Should not get current user with random token" do
stub(:current_user?).and_return(true)
expect(current_user?(12345)).to eq(false)
end
end
答案 1 :(得分:0)
any_instance
应该做你想做的事:
SessionsHelper.any_instance.stub(:current_user?).and_return(true)
正如@Vimsha所说,你在模块和实例之间感到困惑,这很容易做到。