2012-08-02 29 views
1

我使用RSpec的和我想要測試用戶的汽車DELETE方法:當我運行它與標題,ID或文字沒有鏈接「刪除」發現

describe "DELETE " do 
    it "should delete a car" do 
     #@car = Factory.create :car 
     expect { click_link "Delete" }.to change{Car.count}.by(-1) 
    end 
end 

我得到這個錯誤:

CarsController DELETE should delete a car 
Failure/Error: expect { click_link "Delete" }.to change{Car.count}.by(-1) 
Capybara::ElementNotFound: 
    no link with title, id or text 'Delete' found 
# (eval):2:in `click_link' 
# ./spec/controllers/car_controller_spec.rb:30:in `block (4 levels) in <top (required)>' 
# ./spec/controllers/car_controller_spec.rb:30:in `block (3 levels) in <top (required)>' 

,我不知道爲什麼監守我有我的index.html.erb此鏈接:

<td><%= link_to 'Delete', user_car_path(@user, car), :confirm => 'Are you sure?', :method => :delete %></td> 

,但在我的應用程序它的工作原理

回答

2

在rails中刪除請求會轉換爲表單,這就是爲什麼找不到元素的原因。您還需要觸發確認。

要點擊刪除:

find('a', :text => 'Delete').click 

要接受確認:

page.driver.browser.switch_to.alert.accept 

有上實施,如果你希望能夠使用click_link

在沒有JavaScript破壞方法的Railscast

http://railscasts.com/episodes/77-destroy-without-javascript/

+0

我替換了我的rspec測試但提示顯示我水豚:: ElementNotFound: 無法找到css「span」 – Asantoya17 2012-08-02 20:36:00

+0

對不起,我不明白這個問題。 – Gazler 2012-08-02 20:36:38

+0

嘗試'find('a',:text =>'Delete')。click' – Gazler 2012-08-02 20:46:06

相關問題