Como posso stub ou zombar o método request.subdomains em Rails?
-
05-07-2019 - |
Pergunta
Eu estou tentando escrever alguns testes funcionais em minha rails aplicativo e na application_controller.rb eu tenho este:
before_filter :current_account
def current_account
@current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end
Ao executar testes, request.subdomains
não contém os subdomínios válidos que eu estou procurando e torna impossível para executar todos os testes funcionais.
É possível stub do método current_account
ou zombar o objeto request.subdomains
?
Solução
Em seu teste funcional que você deve ser capaz de fazer (usando mocha):
@request.expects(:subdomains).returns(['www'])
Outras dicas
Para mim (e com Rails 2.3.4), a afirmação correta é
@controller.request.expects(:subdomains).returns(['www'])
desde que eu não posso acesso a @request diretamente.
@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))
Você pode acessar qualquer coisa em Ruby:)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow