0

私のsinatraアプリケーションには、いくつかのルートの開始時に実行されるセキュリティメソッドがあります。安全である必要がある各ルートに対して同じ認証rspecテストのセットを実行したいのですが、rspecで繰り返したくありません。これはどのようにすればよいですか?

helpers do
  def requires_auth!
    # stuff
  end
end

post '/object' do
  requires_auth!

  # stuff
end

put '/object' do
  requires_auth!

  # stuff
end

get '/object' do
  # doesn't require auth

  # stuff
end

私のスペックは現在このように見え、非常に反復的に見えます。

describe 'The post request' do
  it 'should fail if auth token is invalid'
  it 'should fail if auth token has expired'

  it 'should pass if <other stuff>'
end

describe 'The put request' do
  it 'should fail if auth token is invalid'
  it 'should fail if auth token has expired'

  it 'should pass if <more other stuff>'
end

describe 'The get request' do
  it 'should pass if <other stuff yet again>'
end
4

1 に答える 1

0

RTFMが必要です!これがまさにshared_examples使用されているように見えます。Sinatraに固有のより良い方法があると思う場合は、投稿してください。

于 2012-08-29T13:55:37.980 に答える