2014-11-05 66 views
0

我已经使用了自定义设计失败应用程序。使用rspec测试设计CustomFailure应用程序

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 [“变种”] CustomeFailure应用会存在。

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

那么我该如何测试呢?

回答

0

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

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