2012-02-28 3 views
2

나는 capybara 및 rspec을 사용하고 있는데, 이는 오브젝트의 파괴 링크를 테스트하는 가장 좋은 방법입니다. 나는이 링크capybara 및 rspec을 사용하여 파괴 작업 테스트

<a href="/categories/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a> 

을 클릭해야하지만 난 그것을 선택할 수 아니에요 :

it "should destroy a category" do 
    visit categories_path 
    find(:xpath, '//link[@href="/categories/1"]').click 
    # how to handle javascript pop up for confirmation? 
end 

어떤 힌트? 감사합니다.

답변

13
expect { click_link 'Destroy' }.to change(Category, :count).by(-1) 
이 요구 사양 인 것처럼 보이는 때문에
4
it "should destroy a category" do 
expect { click_link('Destroy') }.to change(Category, :count).by(-1) 
end 
1

, 당신은 더 밀접하게 함께 사용자를 시뮬레이션 할 수 있습니다 :

it "should destroy a category" do 
    visit categories_path 
    find(:xpath, '//link[@href="/categories/1"]').click 
    sleep 1.seconds 
    alert = page.driver.browser.switch_to.alert 
    expect { alert.accept }.to change(Category, :count).by(-1) 
end 

건배!

관련 문제