「"文字数の長さに関するエラー"は配列に格納されているため、 expect(user.errors[:nickname][0]
という形でエラー文を指定する」という認識でしたが、確かめてみると"値が空であるエラー"も配列に格納されていました。こちらでは [0]
という指定をせずとも正常に作動するのはなぜでしょうか?
(1)「passwordが7文字以下であれば登録できないこと」を確かめるテストコード
it "is invalid with a password that has less than 7 characters " do user = build(:user, password: "0000000", password_confirmation: "0000000") user.valid? expect(user.errors[:password][0]).to include("is too long") end end
binding.pry
pry(#<RSpec::ExampleGroups::User::Create>)> user.errors[:nickname] => ["is too long (maximum is 6 characters)"]
(2)「nicknameが空では登録できないこと」を確かめるテストコード
it "is invalid without a nickname" do user = build(:user, nickname: nil) user.valid? expect(user.errors[:nickname]).to include("can't be blank") end
binding.pry
pry(#<RSpec::ExampleGroups::User::Create>)> user.errors[:nickname] => ["can't be blank", "can't be blank"]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。