1

ラック ミドルウェアの応答をテストする方法はわかりますが、要求をテストする方法は?

つまり、ミドルウェアがアプリへのリクエストをいつ変更するかをテストする方法は?

RSpec と Sinatra で作業しています。

4

2 に答える 2

2

@Denisの答えは機能しますが、個人的には、ミドルウェアをベアラックアプリ(シナトラなど)に入れて、リクエストをレスポンスとして渡し、それをテストするという代替手段を好みます。これは、ほとんどの Rack ミドルウェアの仕様です。それと、ミドルウェアの内部の単体テストです。

たとえば、Rack Clicky のフォークを使用してここで行ったことです。


編集:メインアプリとは別にミドルウェアをテストします。

require 'lib/rack/mymiddelware.rb'
require 'sinatra/base'

describe "My Middleware" do
  let(:app) {
    Sinatra.new do
      use MyMiddleware
      get('/') { request.env.inspect }
    end
  }
  let(:expected) { "Something you expect" }
  before do
    get "/"
  end
  subject { last_response.body }
  it { should == expected }
end
于 2013-06-28T12:46:53.877 に答える