Testando trilhos de metal/rack com RSPEC?
-
20-09-2019 - |
Pergunta
Digamos que eu tenho uma classe de metal chamada Preview. Como faço para testá -lo com o RSPEC?
Quando eu tento:
require 'spec_helper'
describe Preview do
it "should return the posted content" do
post "/preview", :content => "*title*"
response.body.should == "*title*"
end
end
Eu recebo:
undefined method `post' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>
Parece que o RSPEC não carrega o :post
Método se o teste não for explicitamente para um controlador. Eu tentei especificar :type => :controller
para nenhum proveito.
Solução
O RSPEC possui especificações de integração que envolvem testes de integração de trilhos (que passam pelo rack). Basta colocar essa especificação em ./spec/integration/preview_spec.rb
.
Outras dicas
Eu acho que é melhor testar com rack/teste
Atualmente (RSPEC-RAILS 2.2.0 e Rails 3) você pode alcançar isso usando Solicitar especificações:
De acordo com arquivo de leitura:
Solicitar especificações ao vivo em especificações/solicitações
[...]
As especificações de solicitação misturam comportamento dos testes de integração da Rails. Consulte o Docs for ActionDispatch :: Integration :: Runner para obter mais informações.