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?

Foi útil?

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
scroll top