Estou preso a um problema ao testar meus controladores com RSpec - a chamada response.body sempre retorna uma string vazia. No navegador, tudo é renderizado corretamente, e os testes de recursos do pepino parecem acertar, mas o RSpec falha todas as vezes.
Outras expectativas sobre o objeto de resposta, como response.should render_template('index')
passar sem problemas.
Algum de vocês já encontrou esse problema antes? Talvez a resposta html possa ser obtida de alguma outra forma?
Quanto às versões, Rails 2.1.0, RSpec 1.2.7.
fonte
RSpec 2+: Se você quiser verificar ponta a ponta - url para o corpo da resposta - use uma especificação de solicitação em vez de uma especificação de controlador .
fonte
Como eu trabalhava com um problema semelhante (que me levou a esta questão), me ocorreu que existem diferentes maneiras de tirar a pele do mesmo gato. Em outras palavras, em vez de verificar o corpo do texto, você pode verificar o conteúdo do flash.
pode ser um cheque equivalente a:
Para mim, este último parece um pouco mais flexível, pois funcionará de qualquer maneira, mas pode não ser apropriado em todos os casos.
Felicidades,
John
fonte
Por padrão, a configuração RSpec-rails desativa a renderização de modelos para especificações de controlador
Uma das maneiras de corrigir isso é habilitar a
render_views
configuração em seurails_helper.rb
arquivo. Desta forma, você o torna capaz de trabalhar globalmente em todos os seus testes.Ou use a declaração render_views para um grupo individual:
Você pode ler mais sobre isso aqui .
fonte