1

Railsアプリケーションで機能をテストしたいのですが、テストにはユーザー/管理者がログインする必要があります.多くのWebサイトを見てきましたが、それを機能させるために本当に何をすべきかを理解できません. 簡単にできることはあると思いますが、見つけられないようです。

stubs コマンドが使用されているのを見たことがありますが、それが未定義のメソッドであることだけがわかり、何をすべきかがよくわかりません。

ユーザー/管理者が要求しているかのようにテストを実行する方法について何かアイデアはありますか?

助けてくれてありがとう。

4

1 に答える 1

1

受け入れ/統合テスト:

  1. cucumber を使用している場合は、ユーザーとしてログインするだけです。何かのようなもの:

    fill_in 'users[username]', :with => "my username" fill_in 'users[password]', :with => "my password" click_button "ログイン"

  2. rspec+capybara を使用している場合は、次のようなことができます (認証に Devise を使用していると仮定します)。

    # spec/spec_helper.rb
    include Warden::Test::Helpers
    
    # in spec/acceptance/some_spec.rb
    ...
    login_as FactoryGirl.create(:user)
    

単体テスト

  • Devise を使用している場合は、https://github.com/plataformatec/devise#test-helpersを参照してください
  • sessionそれ以外の場合は、オブジェクトに書き込むか、スタブアウトすることで同様の機能を実装できますcurrent_user(それを呼び出すと仮定します)。
于 2012-12-08T03:12:51.480 に答える