0

Mongoidを使用しています。私はオブジェクトを持っています:

class Employee
  include Mongoid::Document

    field :name_first,      type: String
    field :name_last,       type: String
    field   :name_other,        type: Array,    default: []
    field :title,                   type: String
    field :education,           type: Hash,     default: {}
    field :languages,           type: Array,    default: []
    field :phone,                   type: Hash,     default: {}
    field :address,             type: Hash,     default: {}
    field :email,                   type: Array,    default: []
    field :url,                     type: Array,    default: []
    field :history,             type: Array,    default: []
    field :profile,             type: String
    field :social_media,    type: Hash,     default: {}
    field :last_contact,    type: Time
    field :signed_up,           type: Date

    belongs_to :user
    belongs_to :practice
end

そして、私はファブリケーションを使おうとしていますが、問題があります。ジェムは正常にインストールされました。/spec/fabricators/employee_fabricator.rbにあります

Fabricator :employee do

end

そしてmy_controller_spec.rbに私は持っています:

describe CasesController do

    describe "viewing cases" do
    before(:each) do
        Fabricate(:employee)
    end

    it "allows viewing the cases index page" do
        get 'index'
        response.should_not be_success
    end
    end
end

ターミナルで「rspecspec」を実行すると、次のようになります。

Failures:

  1) CasesController viewing cases allows viewing the cases index page
     Failure/Error: Fabricate(:employee)
     ArgumentError:
       wrong number of arguments (2 for 1)

何が起きてる?私はさまざまな順列を試しましたが、そのうちのいくつかは他のエラーをスローしますが、何も実行されません。Fabricate(:employee)行を呼び出さなくても、期待どおりに実行されますが、これまでのところ、空のテストしかありません...

4

1 に答える 1

0

アクティブ レコードの使用中に同じ問題が発生しました。

バージョン 2.6 の Fabrication gem が、2 番目の属性を active_record/base.rb 初期化子に渡していることがわかりました: {:without_protection=>true}

この変更は Rails 3.2 にあるようです (私は 3.0 を使用しています)。新しいパラメーターはバージョン 2.0.2 の Fabrication gem によって渡されるようになったので、Rails を 3.2 にアップグレードするまで、私の gem ファイル内の加工 gem を 2.0.1 にダウングレードしました。

したがって、基本的には、Fabrication gem を 2.0.1 にダウングレードするか、Rails を 3.2 にアップグレードすることをお勧めします。

于 2013-04-05T17:00:37.263 に答える