私は比較的新しいTDDです。wishlist
が対応するuser
なしで保存できないように、ユニットテストを書いていました。ここに私のgiftlistモデルクラスは次のとおりです。ここでアクティブなレコードの関連付けに暗黙の存在確認がありますか?
class Giftlist < ApplicationRecord
belongs_to :user
end
は私のユーザモデルクラスです:
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
has_many :giftlists
end
私のテストは、次のようになります。
test 'wishlist must have an associated user' do
@giftlist = Giftlist.new
assert_not @giftlist.save, 'wishlist was saved without user'
end
私はこのテストは私ので、失敗する期待していました私のウィッシュリストモデルにvalidates :user, presence: true
を追加していません。しかし、私がレールを信じるように導いたテストは、外部キー協会に対していくつかの暗黙のバリデーションを行いました。
これは何が起こっているのですか?それとも別のことが起こっていますか?