キュウリのスナビングシナトラヘルパー
質問
現在、 Cucumber 内から Sinatra アプリのヘルパーメソッドをスタブするのに苦労しています。
単純なセッション認証(Cookieによる)を備えた Sinatra アプリを使用しており、の logged_in?
ヘルパーメソッドをスタブして認証を無効にしたいキュウリシナリオ。
セッションに関してSinatraとCucumberに問題があるようです。そのため、問題を回避するためにMochaを使用することを考えました。
ただし、 Given
-Block内から Sinatra :: Application
インスタンスにアクセスしてメソッドをスタブ化する方法はわかりません。
解決
Sinatra :: Application.class_eval
編集:完全な説明については、元のポスターの回答を参照してください。
他のヒント
Before do ... end
-block
だから、 features / support /
ファイルに hooks.rb
を配置して、 logged_in?
と current_userを上書きしました。
メソッド。
Before do
MySinatraApplicationClass.class_eval do
helpers do
def logged_in?
return true
end
def current_user
# This returns a certain Username usually stored
# in the session, returning it like
# that prohibits different user logins, but for
# now this is enough for me
"Walter"
end
end
end
end
注意しなければならないのは、アプリケーション内の他のアクションが session
から直接読み取るのではなく、それらのヘルパーを使用することです。
残念ながら、Cucumberを介してセッションベースのSinatraアプリケーションを処理するこの方法は、すでに別の場所で説明されていると思います。私の問題は異なると思いました。
所属していません StackOverflow