私はRSpecのActiveRecordモデルをテストしていますが、FactoryGirlモデルを作成する代わりに、モデルをインスタンス化するだけでテストをスピードアップしようとしていますが、false
があるとがtrue
を返しています。Rails .include?
私はテストが...場所モデルのインスタンスの引数を渡されたスケジュールモデル、この方法で
def available_at_location(location)
locations.include?(location)
end
、テストが...
ですよコードbefore do
subject.locations = [location_b]
end
it 'returns false' do
result = subject.available_at_location(location_a)
expect(result).to be(false)
end
私はFactoryGirlテストパスとinclude?
リターンfalse
でlocation_a
とlocation_b
を作成するが、私はこのコードでlocation_a
とlocation_b
をインスタンス化する場合、テストは失敗し、税込うーん? true
を返します。
let(:location_a) { Location.new(name: 'London') }
let(:location_b) { Location.new(name: 'York') }
印刷locations
は、location_b
を含むCollectionProxyであることを示し、そしてlocation
引数を印刷することは、正しい特性を有するlocation_a
、両方であることを示しています。そして、include?
は、location
引数が受け渡されるかどうかを返します。true
を返します。
EDIT:いくつかの追加コード。 ...
この
は対象を定義するためのコード...subject { described_class.new(locations: [location_a]) }
であり、これがfactorygirl場所工場のためのコードである
require 'faker'
FactoryGirl.define do
factory :location do
name { Faker::Company.name }
address { Faker::Address.street_address }
city { Faker::Address.city }
zipcode { Faker::Address.zip_code }
landline { Faker::PhoneNumber.phone_number }
association :organization
end
end
N.B.私はコンストラクタ(Location.new(name: 'London', organization: Organization.new)
)に組織を提供しようとしましたが、出力を変更しません。 include?
戻りtrue
- 両方のレコードが新規であり、id == nil
を持っているので
お買いものに役立つ情報交換ができます。 – Ilya
私はあなたが被写体の定義を意味するかどうかはわかりませんでした(私はいつでも被写体を作成するためにFGを使用していませんでした)か、場所のFactoryGirlですが、私は両方を投稿の編集に提供しました。 – Squig