0
我創建一個Ruby on Rails的web應用程序,並有index.html.erb文件包含下面的代碼我的意見之一:Ruby代碼在我html.erb文件黃瓜測試期間不執行
<div class="container" id="quickTickets">
<% Game.all.each do |game| %>
<h2>
<%= link_to game.name, game_tickets_path(game.id), :id => "gameid_"+game.id.to_s %>
</h2>
<%end%>
</div>
的代碼工作正常,當我在瀏覽器中查看它,並顯示一個標題爲每個鏈接到一個單獨的頁面遊戲。但是,當我運行Cucumber/Capybara測試來模擬點擊其中一個標題時,它會失敗。
測試失敗,因爲上面的Ruby代碼塊在運行Cucumber測試時未執行,所以頁面最終包含空的<div>
。
例如,當我做出print page.html
打電話來檢查我的黃瓜測試上運行的HTML,它顯示以下內容:
<div class="container" id="quickTickets">
</div>
我已經花了幾個小時試圖找到任何文件或以前的錯誤像這樣,但還沒有找到解決方案。有任何想法嗎?
我把它加入遊戲的工作還沒有配置你的測試在我的Cucumber測試中直接對我的db。如果我理解正確,您必須在Cucumber測試本身中顯式創建Game對象,而不是讓測試與db交互? – user1874182
@ user1874182測試一般都是在自己的環境與自己的數據庫實例中運行,而數據庫實例每次測試之間清除(或如果使用事務處理模式非JS能夠司機跑這麼沒什麼每居然被提交),以便測試彼此隔離。因此,每個測試都需要在數據庫中創建需要測試的任何測試對象。 –