0

英語で申し訳ありませんが、カピバラでビューをテストしているときに問題が発生しました。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

国際化対応のカピバラを使用したことはありませんが、問題が発生する可能性があることは想像に難くありません。

@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 に答える