0
前モデルのセッターを使用したとき、私は、ユーザーがset_totalこのshouldaマッチエラーvalidarion
def set_total!
self.total = products.map(&price).sum
end
のように見えます
before_validation :set_total!
validates :total, presence: true, numericality: { greater_than_or_equal_to: 0 }
を注文された製品の総合計金額を計算するためのラインでの注文モデルを持っています私の仕様では、合計検証が実装されているかどうかを確認しようとしていますTDD
it { should validate_presence_of(:total) }
it { should validate_numericality_of(:total).is_greater_than_or_equal_to(0) }
は、残念ながら、私は次のエラー、私はこの問題を解決するにはどうすればよい
Failure/Error: it { should validate_presence_of(:total) }
Order did not properly validate that :total cannot be empty/falsy. After setting :total to ‹nil› -- which was read back as ‹#<BigDecimal:5634b8b81008,'0.0',9(27)>› -- the matcher expected the Order to be invalid, but it was valid instead. As indicated in the message above, :total seems to be changing certain values as they are set, and this could have something to do with why this test is failing. If you've overridden the writer method for this attribute, then you may need to change it to make this test pass, or do something else entirely.
を受けるのですか? validate_presence_of
マッチャーを使用して