Ruby on rails 是否使用Rspec存根调用Rails.application.config_?
我有一个具有以下行的方法: 权限=Rails.application.config\u for:admin\u auth 它读取config/admin_auth.yml文件并返回我稍后在同一方法中使用的哈希值 问题是为了测试这个方法,我需要给权限赋予不同的值,但是我找不到方法来存根Rails.application.config_以进行调用 我试过: allowRails::Application.to receive:config_for{{admin:'super_admin'} 但是我遇到了一个错误。试试:Ruby on rails 是否使用Rspec存根调用Rails.application.config_?,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我有一个具有以下行的方法: 权限=Rails.application.config\u for:admin\u auth 它读取config/admin_auth.yml文件并返回我稍后在同一方法中使用的哈希值 问题是为了测试这个方法,我需要给权限赋予不同的值,但是我找不到方法来存根Rails.application.config_以进行调用 我试过: allowRails::Application.to receive:config_for{{admin:'super_admin'} 但是我遇
allow_any_instance_of(Rails::Applcation).to ...
或
尝试:
或
我认为stubing-configs不是一个好主意,因为很可能rails-env会在您真正开始测试之前被加载。对于这种情况,您可以考虑以下解决方案: 1.将权限分隔为一个方法并存根它
# code
def permissions
Rails.application.config_for(:admin_auth)
end
# test
allow(your_object).to receive(:permissions).and_return({ admin: 'super_admin' })
2.根据设置文件我认为stubing configs不是一个好主意,因为很可能rails env会在您真正开始测试之前加载。对于这种情况,您可以考虑以下解决方案: 1.将权限分隔为一个方法并存根它
# code
def permissions
Rails.application.config_for(:admin_auth)
end
# test
allow(your_object).to receive(:permissions).and_return({ admin: 'super_admin' })
2.根据设置文件,这看起来是一个很好的解决方案。问题是,我的对象是一个名为Admins::AuthHelper和allowAdmins::AuthHelper.to接收:权限的帮助程序模块。而{return{admin:'super\u admin'}似乎不起作用。如果它是一个视图帮助程序方法,您可以尝试allowhelper.to接收:权限。和{return admin:'super\u admin'}这看起来是一个很好的解决方案。问题是,我的对象是一个名为Admins::AuthHelper和allowAdmins::AuthHelper.to接收:权限的帮助程序模块。而{return{admin:'super\u admin'}似乎不起作用。如果它是视图帮助程序方法,您可以尝试allowhelper.to接收:权限。和{return admin:'super\u admin'}