1

サンプルに従ってすべてを行った問題ですが、コードはまだ機能しません。

spec/support/devise/devise_support.rb

module ValidUserRequestHelper
    def sign_in_as_a_valid_user
        @user ||= Fabricate(:simple_user)
        post_via_redirect user_session_path, 'user[email]' => @user.email, 'user[password]' => @user.password
    end
end

RSpec.configure do |config|
    config.include ValidUserRequestHelper, :type => :request
end

spec/spec_helper.rb

Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

ただし、テストを実行すると、「sign_in_as_a_valid_user」の呼び出しで失敗します

undefined local variable or method `sign_in_as_a_valid_user' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xc57a0c4>

これをデバッグする方法がわかりません。

テストコードは

require 'spec_helper'

describe User do

  before do
        sign_in_as_a_valid_user
  end

...
4

1 に答える 1

3

これをrspec構成に書き込むと

RSpec.configure do |config|
  config.include ValidUserRequestHelper, :type => :request
end

このヘルパーのみをリクエスト仕様に含めるように rspec に指示します。これらは通常、 にありspec/requestます。含まれている仕様の例から導き出してdescribe User、通常は にあるモデル仕様を作成していると仮定しますspec/model。そのため、スペックを実行するとき、rspec はそのスペックにそれを含めません!

を削除する:type => :requestと、どこにでも含まれます。通常、この種の制限には正当な理由があることに注意してください。たとえば、リクエスト仕様で行われているように、偽のブラウザでのみ機能するヘルパーです。

于 2013-10-09T07:30:36.620 に答える