문제

나는 현재 내 도우미 방법을 스터브하는 데 어려움을 겪고 있습니다. 시나트라 내부에서 앱 오이.

나는있다 시나트라 간단한 세션 인증 (쿠키에 의해)이있는 앱과 나는 logged_in? 내 도우미 방법 오이 시나리오. 세션과 관련하여 Sinatra와 Cucumber에 문제가있는 것 같습니다. 그래서 나는 단지 문제를 해결하기 위해 Mocha를 사용하는 것에 대해 생각했습니다.

그러나 나는 내가 어떻게 액세스 할 수 있는지 모른다 Sinatra::Application a 내에서 인스턴스 Given-메소드를 스텁하려면 블록.

도움이 되었습니까?

해결책

사용하여 올바른 컨텍스트를 얻을 수 있습니다 Sinatra::Application.class_eval

편집 : 전체 설명은 원래 포스터의 답변을 참조하십시오.

다른 팁

내 인증 메커니즘을 직접 재정의 해야하는 것 같습니다. Before do ... end-차단하다

그래서 나는 끝났다 hooks.rb 정착하다 features/support/ 내 덮어 쓰는 파일 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 오히려 그 조력자를 사용하십시오.

안타깝게 내 문제는 달랐습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top