我被要求幫助Rails應用程序。我正在經歷一些失敗的rpsec測試並讓他們通過。我有一個我正在用頭撞牆的東西。我們使用的是Rails 3.2.13和Ruby 2.0注意:我完全是rspec上的nube。rspec測試結果水豚:: ElementNotFound
我有一個表格,身份證爲獸醫。測試正在尋找這個,而不是找到它。我收到錯誤:
Capybara::ElementNotFound:
Unable to find css "form#vet-as-faculty
我也在測試中的其他表單元素上也出現類似的錯誤,但測試失敗或此時此刻。
我知道這個「通常」意味着表單上的標記不正確,或者測試中的某些內容拼寫錯誤(我發現了其中的一些)。但是,我無法得到這一個。我已經谷歌搜索這個錯誤,並發現了一些東西,但似乎沒有幫助我在這一個。我希望你們的大師們能看到一些簡單的東西。
窗體/視圖(部分):
<%= form_for @profile, :url => { :action => :vet_as_faculty }, :html => { :id => "vet-as-faculty" } do |f| %>
<fieldset class="row1"><legend>Vet Me As Faculty</legend>
<div class="form-pair" id="faculty-url">
<div class="form-item">
<label>Faculty URL</label>
</div>
<fieldset class="row2">
<div class="form-submit" id="save-faculty">
<%= f.submit "Send for Review" %>
</div>
</fieldset>
<% end %>
查看源示出以此爲:
<form accept-charset="UTF-8" action="/research/chr/casestudies/profile/vet_as_faculty" class="edit_user" id="vet-as-faculty" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="FZtjli8HaGD3koUvSFAYR2Gy+waL8KDWflMNUo4tXXw=" /></div>
<fieldset class="row1"><legend>Vet Me As Faculty</legend>
<div class="form-pair" id="faculty-url">
<div class="form-item">
<label>Faculty URL</label>
</div>
<div class="form-value">
<input id="user_faculty_url" name="user[faculty_url]" size="30" type="text" />
</div>
</fieldset>
<fieldset class="row2">
<div class="form-submit" id="save-faculty">
<input name="commit" type="submit" value="Send for Review" />
</div>
</fieldset>
...
所以,我看到對ID爲「ID = 「獸醫-AS-教師」 」。但是,測試沒有看到這一點。
測試代碼:
context "within the faculty vetting block" do
it "has the necessary form fields" do
within "form#vet-as-faculty" do
expect(page).to have_css("input#user_faculty_url")
expect(page).to have_css("input#save-faculty")
end
end
end
這一個測試的錯誤輸出:
3) Edit Profile View within the faculty vetting block has the necessary form fields
Failure/Error: within "form#vet-as-faculty" do
Capybara::ElementNotFound:
Unable to find css "form#vet-as-faculty"
# ./spec/features/edit_profile_view_spec.rb:48:in `block (3 levels) in <top (required)>'
我試圖增加更多的在測試深入型CSS
within "#page #content form#vet-as-faculty" do
表單在div#內部,內容在div#頁面內。這也沒有幫助。
有什麼想法?感謝您閱讀本文。
你確定你在你認爲你在的頁面上嗎?在您與我們分享的測試中沒有訪問方法調用。 – DVG
您是否嘗試過前面的'內部'塊?您可以在'it'塊中聲明您的期望(以便規格掃描整個頁面)並查看是否有幫助。水豚的功能規格可能相當變幻無常。祝你好運! – aceofbassgreg
感謝您的回覆。也許代碼沒有看到視圖頁面。如前所述,我對rspec完全陌生。我看到一個有'後臺做'的塊。其中有一行:訪問edit_profile_path(@user)。我不知道這是否是你所指的。我會和編寫這個代碼的程序員一起去問他。謝謝 –