尽管spec_helper中包含模块,但在rspec集成测试中无法识别方法

时间:2013-02-22 05:09:46

标签: ruby-on-rails

我收到的错误是我的方法没有定义。错误是“未定义的局部变量或方法'mock_auth_hash',尽管包括在spec_helper中定义了mock_auth_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_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

1 个答案:

答案 0 :(得分:1)

您对mock_auth_hash的来电必须在beforeit之内。