Dan*_*iel 2 ruby rspec ruby-on-rails
我有一个带有以下行的方法:
permissions = Rails.application.config_for(:admin_auth)
Run Code Online (Sandbox Code Playgroud)
它读取文件config/admin_auth.yml并返回我稍后在同一方法中使用的哈希。
问题是为了测试这个方法,我需要给不同的值,permissions但我找不到存根Rails.application.config_for调用的方法。
我试过:
allow(Rails::Application).to receive(:config_for) { { admin: 'super_admin' } }
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误。
我认为存根配置不是一个好主意,因为很可能在你真正开始测试之前就加载了 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' })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1548 次 |
| 最近记录: |