【问题标题】:testing devise CustomFailure App with rspec使用 rspec 测试设计 CustomFailure App
【发布时间】:2014-11-05 12:07:26
【问题描述】:

我使用了自定义设计失败应用。

class CustomFailure < Devise::FailureApp
protected
    def redirect_url
        LOGIN_URL
    end

结束

我根据环境变量使用默认失败应用和自定义失败应用。

我想用 rspec 测试这个功能。这是我想在 rspec 中做的事情

If env['var'] = value
    expect redirect_url to return 'hostname/customlogin/'
else
    expect redirect_url to return 'hostname/sign_in/' 

但问题是只有当我设置了 env['var'] 时,CustomeFailure 应用程序才会存在。

if ENV["var"] == value
    config.warden do |manager|
        manager.failure_app = CustomFailure
    end
end

那么我该如何测试呢?

【问题讨论】:

    标签: ruby-on-rails rspec devise


    【解决方案1】:

    我能够为这个场景编写测试用例。这不是我想要的正确行为,但我可以继续这样做。

    require 'rails_helper'
    describe CustomFailure do
        describe '.redirect_url' do
            let(:expected_result) { 'hostname/customlogin' }
            it 'returns the login url' do
                @custom = CustomFailure.new
                expect(@custom.send(:redirect_url)).to eq(expected_result)
            end
        end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多