Тест уничтожить действие с капибарой и rspec - PullRequest
2 голосов
/ 28 февраля 2012

Я нахожусь под капибарой и 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

какой-нибудь намек?Спасибо!

Ответы [ 3 ]

14 голосов
/ 28 февраля 2012
expect { click_link 'Destroy' }.to change(Category, :count).by(-1)
4 голосов
/ 28 февраля 2012
it "should destroy a category" do
 expect { click_link('Destroy') }.to change(Category, :count).by(-1)
end
1 голос
/ 07 сентября 2012

Поскольку это выглядит так, как будто это спецификация запроса, вы можете более точно смоделировать пользователя с помощью:

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

Cheers!

...