3

Preview という名前の Metal クラスがあるとします。RSpecでテストするにはどうすればよいですか?

私がしようとすると:

require 'spec_helper'

describe Preview do

  it "should return the posted content" do
    post "/preview", :content => "*title*"
    response.body.should == "*title*"
  end

end

私は得る:

undefined method `post' for #<ActiveSupport::TestCase::Subclass_1:0x1058b3098>

:postテストがコントローラーに対して明示的に行われていない場合、RSpec はメソッドをロードしないようです。:type => :controller無駄に指定しようとしました。

4

3 に答える 3

6

rspec には、Rails 統合テスト (ラックを通過する) をラップする統合仕様があります。その仕様を に入れるだけ./spec/integration/preview_spec.rbです。

于 2010-03-16T11:12:30.317 に答える
1

rack/test でテストしたほうがいいと思います

于 2010-03-15T20:18:33.313 に答える
0

現在 (rspec-rails 2.2.0 および rails 3)、Request Specsを使用してそれを実現できます。

readme ファイルによると:

リクエスト スペックはスペック/リクエストで公開

[...]

Rails の統合テストの動作に要求仕様が混在しています。詳細については、ActionDispatch::Integration::Runner のドキュメントを参照してください。

于 2010-12-01T00:15:39.323 に答える