2012-06-28 62 views
0

对不起,我的英语,我有一个问题,同时测试与水豚的意见。水豚不能查看康康验证的元素,我在测试中有这个,以模拟用户拥有所有权限。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 [email protected]' found 
# (eval):2:in `click_link' 
# ./spec/views/users_spec.rb:53:in `block (3 levels) in <top (required)>' 

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

有帮助吗?

在此先感谢,问候......

+0

请勿使用链接文本,请使用ids! – phoet

+0

我使用了ID但不起作用:/我已经注意到,并不需要为current_user分配权限来测试控制器,对于所有事情都具有权限,尽管没有指定(当然,我的控制器有限制) –

回答

0

我从来没有使用与国际水豚尝试,但我可以想像,你可能会遇到一些问题。

我会遵循@phoet的建议,并在链接中使用ID而不是翻译后的链接文字。水豚的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'