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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top