Ruby on rails 使用水豚进行cancan和views测试
对不起,我的英语,我在用水豚测试视图时遇到问题。Capybara无法查看使用cancan验证的元素,我的测试中有这一点,以模拟用户对所有元素都有权限Ruby on rails 使用水豚进行cancan和views测试,ruby-on-rails,ruby-on-rails-3,testing,capybara,cancan,Ruby On Rails,Ruby On Rails 3,Testing,Capybara,Cancan,对不起,我的英语,我在用水豚测试视图时遇到问题。Capybara无法查看使用cancan验证的元素,我的测试中有这一点,以模拟用户对所有元素都有权限 before(:each) do permission = FactoryGirl.create(:permission) role = FactoryGirl.build(:role) role.permissions << permission role.save user = FactoryGirl.creat
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
但是我的考试不及格
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)>'
失败/错误:单击链接t('actions.new')
Capybara::ElementNotFound:
找不到标题、id或文本为“Crear nuev@”的链接
#(评估):2:在“点击链接”中
#./spec/views/users_spec.rb:53:in'block(3层)in'
我不明白,我的控制器没有问题
要帮忙吗
提前感谢,关于…我从未尝试过将水豚用于国际化,但我可以想象您可能会遇到一些问题 我会按照@phoet的建议,在你的链接中使用ID,而不是翻译的链接文本。水豚的
点击链接将查找ID或链接文本
# add ID to link in view
= link_to(t('actions.new'), new_user_path, :id => 'actions_new') if can?(:create, User)
不要使用链接文本,使用ID!我使用了ID,但不起作用:/I我注意到,没有必要将权限分配给当前用户来测试控制器,就像拥有所有权限一样,尽管没有指定(当然,我的控制器有限制)
# 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'