对不起我的英语,我在测试与水豚的观点时遇到了问题。 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)>'
我不明白,我的控制器没有问题。
一些帮助?
提前致谢,问候......
答案 0 :(得分:0)
我从未尝试过将水豚用于国际化,但我可以想象你可能遇到一些问题。
我会遵循@ phoet的建议并在您的链接中使用ID而不是翻译的链接文本。 Capybara的click_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'