0

对不起我的英语,我在用 capybara 测试视图时遇到了问题。Capybara 无法查看使用 cancan 验证的元素,我的测试中有此功能,以模拟用户对所有人都具有权限。

before(:each) do
  permission = FactoryGirl.create(:permission)
  role = FactoryGirl.build(:role)
  role.permissions << permission
  role.save
  user = FactoryGirl.create(:user, :role_id => role.id)
  sign_in user
end

在我看来,这...

= link_to t('actions.new'), new_user_path if can?(:create, User)

但我的测试没有通过

 Failure/Error: click_link t('actions.new')
 Capybara::ElementNotFound:
   no link with title, id or text 'Crear nuev@' found
 # (eval):2:in `click_link'
 # ./spec/views/users_spec.rb:53:in `block (3 levels) in <top (required)>'

我不明白,我的控制器没有问题。

一些帮助?

在此先感谢,问候...

4

1 回答 1

0

我从未尝试过使用具有国际化功能的 capybara,但我可以想象您可能会遇到一些问题。

我会听从@phoet 的建议,并在您的链接中使用 ID 而不是翻译后的链接文本。Capybaraclick_link将查找 ID 或链接文本。

# add ID to link in view
= link_to(t('actions.new'), new_user_path, :id => 'actions_new') if can?(:create, User)

.

# in test file
click_link 'actions_new'
于 2012-06-29T02:14:27.827 回答