とvalidate_uniqueness_of:RSpecの、shoulda、私はRSpecのテスト以下のいる範囲と間違ったエラーメッセージ
describe Productlimit do
before(:each) do
@productlimit = Factory.create(:productlimit, :user => Factory.create(:user))
end
subject { @productlimit }
...
it { should validate_uniqueness_of(:price_cents).scoped_to(:direction_down, :currency, :market_id, :user_id) }
...
end
しかし、私は混乱エラー以下の取得:
1) Productlimit
Failure/Error: it { should validate_uniqueness_of(:price_cents).scoped_to(:direction_down, :currency, :market_id, :user_id) }
Expected errors to include "has already been taken" when price_cents is set to 9530, got errors: ["direction_down has already been taken (false)"]
はあなたが私を助けることができるの?エラーメッセージが正しいように見えるので、なぜこれが動作していないのか分かりません。
EDIT:
これは、他の状況では、あまりにも起こる:
# product_spec.rb
...
it { should validate_numericality_of(:price).with_message("price_cents must be greater than 0 (0)") }
# rake spec:models
Failure/Error: it { should validate_numericality_of(:price).with_message("price_cents must be greater than 0 (0)") }
Expected errors to include "price_cents must be greater than 0 (0)" when price is set to "abcd", got errors: ["price_cents must be greater than 0 (0)"]
どのバージョンのshoulda/rspecを使用していますか? – nathanvda
私はshoulda-matcher(1.0.0.beta2)を持っていますが、現在の 'shoulda'宝石でも試してみました。 – Lichtamberg
あなたがすでにテストしているはずのものをテストしているようです。あなたのモデルでvalidate_numericalityを持っているのであれば、テストでそれをなぜ呼び出すのでしょうか?それは不要な複製です – corroded