我有以下規格:水豚斷言騷靈
# MUST BE TESTED WITH JAVASCRIPT. As you can see before, it is allowing
# the Log Out link. On a real page, that element is hidden.
it "logs out a user" do
user = login_user
click_link user.email
click_link "Log Out"
assert page.has_content?('Logged out')
assert page.has_content?('Company Profile')
end
我login_user
方法是我spec_helper.rb
文件,如下所示:
def login_user(admin = false)
user = FactoryGirl.create(:user, :admin => admin)
visit login_path
fill_in 'Email', :with => user.email
fill_in 'Password', :with => user.password
click_button 'Go'
assert page.has_content?('Logged in')
user
end
那當我添加, js: true
去年assert
失敗我的規格。
當我在它之前做一個save_and_open_page
之後,UP就會出現零CSS的頁面,並且可能沒有JS。由於某些原因,它沒有閱讀資產。我認爲,當你運行測試時,它會像在開發模式中那樣讀取資產。我真的需要幫助。
請給出錯誤信息?你在使用Devise嗎?或者你的會話#刪除方法? – 2013-05-03 19:15:56
沒有錯誤信息,除非我在斷言中添加一個。斷言失敗。當我啓用:js => true時,它無法在頁面上找到「已登錄」。如果我放棄它,它可以正常工作。 Poltergeist有一些導致水豚不讀的頁面。 – AKWF 2013-05-03 19:37:24
我建議你在集成測試中使用Capybara/Rspec首選語法。您可以使用'page.should have_content('Logged in')'而不是'assert'。我不知道細節,但我總是會在Rspec中獲得有用的錯誤消息。 – 2013-05-03 19:46:15