0

管理者ユーザー セッションを作成しているにもかかわらず、統合テストで管理者ユーザーを必要とする URL にアクセスできません。私のテストは 302 エラーで失敗します。

class NewsItemsController < ApplicationController
    before_filter :require_admin_user, :except => [:show, :index, :feed]

    etc...

end

--test/inetgration/admin_stories.rb --

require 'test_helper'

class AdminStoriesTest < ActionController::IntegrationTest

  fixtures :all
    setup :activate_authlogic

  # if user is an admin he can create a new news_item
    def test_creating_a_news_item
        assert UserSession.create(users(:admin))
        get "news_items/new"
        assert_response :success
        #etc...
    end
end

test.log に次の内容が記録されています。

Unable to load roles_user, underlying cause no such file to load -- roles_user 

私のフィクスチャ ファイルは、ご想像のとおり、roles_users.yml という名前です。これを解決する方法がわかりません...

4

3 に答える 3

0

クラスにAuthlogic::TestCaseを含める必要がある場合もあります。私のアプリから(rspec、しかし同じ考え)

describe InvitationsController do
  include Authlogic::TestCase
  setup :activate_authlogic

  describe 'sending invitations' do
  .........

アプリケーションでユーザーをアクティブ化する必要がありますか?もしそうなら、このユーザーですか?

それが役に立たない場合。おそらくデバッグ出力を貼り付け、作成されたユーザーを検査します。

于 2009-10-28T13:55:33.933 に答える
0

新しいアクションがログイン画面にリダイレクトされていると思います。

これは、ログインしていないために発生します。試してください:

get "news_items/new", {}, { 'user_id' => 0 }

またはユーザーIDが実際に何であるか。

最初のハッシュはリクエスト ハッシュで、2 番目はセッション ハッシュです。

于 2009-10-28T13:14:44.703 に答える