我收到一个错误,因为我的方法没有定义。错误为"未定义的局部变量或方法'mock_auth_hash',尽管在spec_helper中包含了定义mock_aauth_hash的模块。
我正在尝试用omniauth进行一些rspec集成测试,我正在关注这个链接https://gist.github.com/kinopyo/1338738
请帮我找出问题所在,因为我花了太多时间试图找出这个。。。也许我需要一双新的眼睛…
这是我的文件
规范->支持->omniauth_macros.rb
module OmniauthMacros
def mock_auth_hash
OmniAuth.config.mock_auth[:facebook] = {'provider' =>"facebook",
'uid' =>"12345",
'info'=>{'name'=>"John Doe"},
'credentials'=>{'token'=>"AAABBBCCC"}}
end
end
spec->spec_helper.rb
RSpec.configure do |config|
.
.
.
config.include OmniauthMacros #I've also tried putting config.include(OmniauthMacros)
.
.
end
OmniAuth.config.test_mode = true
规范->请求->game_pages_spec.rb
describe "signing in" do
before {visit root_url}
mock_auth_hash
before {click_button "Login with Facebook"}
it {should have_selector('h1',text: 'Welcome')}
end
对mock_auth_hash
的调用必须在before
或it
中进行。