validates :name_id, uniqueness: { scope: [:user_id, :user_name_mode] }, if: :user_id? validates :name_id, uniqueness: { scope: [:item_id, :item_name_mode] }, if: :item_id?
モデル側での上記のvalidationに対してどのようなテストを書いていいかわからず困っております。
ヒントでもいいのでご協力いただけたら幸いです
何か試したことはありますか?
例えば、
・参考にした記事や本はあるか?それはどれか?
・rspecのインストールは行ったか?
・specファイルは作成済みか?
・specファイルにはどんなことを書いたか?
・specファイルを実行したらどんなエラーが出たか?
このくらい予めやっておいて、その中でも必要な部分は質問内に記載しておかないと、「この人は自分で調べる気がないんだな....」と思われてしまいます。
お気をつけて。
model
---------------------------
class Employee < ActiveRecored::Base
validates :office, presence: true, if: manager?
def manager?
...
end
end
--------------------------------
rspec
----------------------------------------
describe Employee do
describe '#office' do
context 'is a manager' do
before { allow(subject).to receive(:manager?).and_return(true) }
it { is_expected.to validate_presence_of(:office) }
end
context 'is not a manager' do
before { allow(subject).to receive(:manager?).and_return(false) }
it { is_expected.not_to validate_presence_of(:office) }
end
end
end
-------------------------------------------
参考にしたコードです。
ただこのコードでいうsubjectの部分の定義の仕方がわからず結果として値を渡せてない状況です。
ご回答お願いいたします。
具体性の増加、見やすさの向上
せっかくコードを書いていただくのであれば、質問を編集して記載した方が多くの人の目に留まると思いますよ!
あと、subjectの定義の仕方がわからない、ということも質問に書いておけば、更に多くの人の目に留まって、早く回答がもらえると思います。
私も少し調べてみますね