はい、あなたは要求を模擬することができます。私はそれをどうやって行うのかについて長い間答えてきましたが、実際にはそれは必ずしもあなたが望むものではありません。
例のヘルパーオブジェクトでヘルパーメソッドを呼び出してください。同様に:
describe "#item" do
it "does whatever" do
helper.item.should ...
end
end
これで、テストリクエストオブジェクトにアクセスできます。実際には、完全を期すために、私はあなたがしようとしているものに応じているので、私のオリジナルの答えが含まれてみましょう
before :each do
helper.request.path = 'some-path'
end
:あなたが要求パスの特定の値を指定する必要がある場合、あなたはこのようにそれを行うことができますこれはまだ役立つかもしれません。ここで
は、あなたがリクエストを模擬することができます方法は次のとおりです。
request = mock('request')
controller.stub(:request).and_return request
あなたはすべて1行で&スタブを模擬するために返された要求も同様
request.stub(:method).and_return return_value
や代替構文にスタブメソッドを追加することができます。
request = mock('request', :method => return_value)
あなたのモックがメッセージを受け取った場合、Rspecは文句を言いますあなたがスタブしなかったもの他のものがある場合ヘルパーオブジェクトのリクエストヘルパーメソッドを呼び出すだけで、テストで気にしないことができます。モックを "nullオブジェクト"にすることでrspecを終了できます。同様のようなので、
request = mock('request').as_null_object
すべてのあなたはおそらくあなたの特定のテスト合格を取得する必要がありますように見えますが、このされる:あなたのspec_helper.rbで「『RSpecの/レールを』必要」
describe "#item" do
let(:request){ mock('request', :fullpath => 'some-path') }
before :each do
controller.stub(:request).and_return request
end
it "does whatever"
end
持っていますか? – Rubyman
はい、あります。ありがとう。 –