2
我正在運行我的測試使用測試/單位和水豚的軌道應用程序。我對rails很新,所以我希望我錯過了一些明顯的東西。我有以下集成測試來填寫單個字段並提交表單。這是否運行正常並測試通過:與水豚的軌道集成測試填寫與以前的測試值的形式
test "create post with title only should add post" do
assert_difference('Post.count') do
visit '/posts/new'
fill_in :title, :with => "Sample Post"
click_button 'create Post'
end
assert current_path == post_path(Post.last)
assert page.has_content?("Sample Post")
end
我添加了第二個試驗中,幾乎複製之前的測試,還填寫了第二場和額外的輸入檢查(失敗)。
test "create post with title and body should add post" do
assert_difference('Post.count') do
visit '/posts/new'
fill_in :title, :with => "Testing"
fill_in :body, :with => "This is a sample post"
save_and_open_page
click_button 'create Post'
end
save_and_open_page
assert current_path == post_path(Post.last)
assert page.has_content?("Testing")
assert page.has_content?("This is a sample post")
end
當這個失敗了,我加入了呼籲:
save_and_open_page
,發現形式正在從前面的測試中填寫的標題值,並在所有提供任何身體的價值。測試的名稱和斷言符合第二個測試,所以這不是錯誤的身份。似乎水豚沒有得到更新的值。我也有這個代碼在我的test_helper.rb文件中:
DatabaseCleaner.strategy = :truncation
module ActionController
class IntegrationTest
include Capybara::DSL
self.use_transactional_fixtures = false
teardown do
DatabaseCleaner.clean
Capybara.reset_sessions!
Capybara.use_default_driver
end
end
end
我假設這應該清除測試之間的值。由於顯然沒有發生,我也嘗試給Capybara.rest_sessions添加一個電話!在第一次測試結束時,這並沒有幫助。
任何意見或幫助將不勝感激。
也許這標誌着作爲答案? –
我打算(而且剛剛做),我只是被允許,因爲你需要等待兩天來標記你自己的答案......當我試圖早些時候做它,它告訴我,我不得不再等2個小時。 –