2012-02-04 9 views
1

나는 sinatra가있는 webrat에 몇 가지 테스트를 작성하고 있으며 그 중 일부로 세션이 필요합니다.잘못된 인수 유형 클래스 (예상 모듈) (TypeError)

webrat wikienable :sessions 대신 use Rack::Session::Cookie으로 전화해야한다고 언급합니다.이 작업을 수행했습니다.

이 특정 테스트는 다음과 같습니다

class RegisterNewUserTest < Test::Unit::TestCase 
    include Webrat::Methods 
    include Webrat::Matchers 
    include Webrat::Session 


    def app 
    Rack::Builder.parse_file('config.ru').first 
    end 

    def register_new_user 
    visit '/signup' 
    fill_in "user[email]", :with => "[email protected]" 
    set_hidden_field "user[password]", :to => "password" 
    set_hidden_field "user[password_confirmation]", :to => "password" 
    click_button "Register" 
    end 
end 

내가 그것을 실행하면, 나는 다음과 같은 오류 얻을 : 나는 Webrat::Session 제거가 사라질 때

in `include': wrong argument type Class (expected Module) (TypeError) 
     from test.rb:77:in `<class:RegisterNewUserTest>' 
     from test.rb:74:in `<main>' 

을,하지만 내 테스트는 쓸모가 .

+1

질문이 필요합니다. – BoltClock

답변

3

클래스를 포함하려고합니다. 이는 루비에서는 불가능합니다. 그것의 인스턴스를 사용해보십시오 :). Webrat 사양보기 :

rack_test_session = Rack::Test::Session.new(Rack::MockSession.new(app)) 
관련 문제