2012-12-14 56 views
5

我一直在使用水豚,但我對魔法還不熟悉。我有一個非常奇怪的問題,如果我運行沒有水豚的規格:js =>真正的功能,我可以登錄,但如果我試圖指定:規範js =>真,用戶名/密碼找不到。巫術/水豚:不能用以下語言進行登錄:js => true

這裏的認證宏:

module AuthenticationMacros 
    def sign_in 
    user = FactoryGirl.create(:user) 
    user.activate! 
    visit new_sessions_path 
    fill_in 'Email Address', :with => user.email 
    fill_in 'Password', :with => 'foobar' 
    click_button 'Sign In' 
    user 
    end 
end 

這就是所謂的規格是這樣的:

feature "project setup" do 
    include AuthenticationMacros 

    background do 
    sign_in 
    end 

    scenario "creating a project" do 
    "my spec here" 
    end 

上面的代碼工作正常。但是,如果我改變從方案規範(在這種情況下)

scenario "adding questions to a project" do 

scenario "adding questions to a project", :js => true do 

登錄失敗與「不正確的用戶名/密碼」組合。字面上唯一的變化是:js => true。我正在使用默認的水豚javascript驅動程序。 (加載Firefox)

任何想法可能會發生什麼?我完全被難住了。我正在使用水豚2.0.1,巫術0.7.13。在登錄頁面上沒有javascript和save_and_open_page,然後單擊「登錄」確認在用戶名/密碼字段中輸入了正確的詳細信息。任何建議真的很感激 - 我不知所措。

回答

8

根據capybara文檔,默認的capybara javascript驅動程序是Selenium。由於Selenium在單獨的線程中執行,因此您必須禁用事務性的燈具,否則Selenium線程將無法訪問您在數據庫中創建的數據。見https://github.com/jnicklas/capybara#using-capybara-with-testunit。該部分有關於禁用交易裝置的說明。

+0

Ach!當然!非常感謝,非常感謝。 – PlankTon