5

Padrino :: Admin::AccessControlによって提供されるcurrent_accountに依存するpadrinoコントローラーをテストしようとしています

そのためには、current_accountをモックする必要があります。

コードは次のようなものです。

App.controller :post do
  post :create, map => '/create' do
    Post.create :user => current_account
  end
end

およびrspec:

describe "Post creation" do
  it 'should create' do
    account = Account.create :name => 'someone'
    loggin_as account #to mock current_account
    post '/create'
    Post.first.user.should == account
  end
end

「loggin_as」を実装するにはどうすればよいですか、またはこのテストを作成するにはどうすればよいですか?

4

1 に答える 1

3

テストする簡単な方法を見つけました:

App.any_instance.stub(:current_account).and_return(account)

したがって、テストコードは次のようになります。

describe "Post creation" do
  it 'should create' do
    account = Account.create :name => 'someone'
    App.any_instance.stub(:current_account).and_return(account)
    post '/create'
    Post.first.user.should == account
  end
end

しかし、私はまだ「loggin_as」ヘルパーを構築するのが好きです。では、どうすればAppクラスを動的に取得できますか?(この質問のために別のスレッドを作成する必要がありますか?)

于 2012-11-21T19:02:26.120 に答える