app/models/user.rb
ruby
1class User < ApplicationRecord 2 before_save { self.email = email.downcase } 3 validates :name, presence: true, length: { maximum: 50 } 4 VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+.[a-z]+\z/i 5 validates :email, presence: true, length: { maximum: 255 }, 6 format: { with: VALID_EMAIL_REGEX }, 7 uniqueness: { case_sensitive: false } 8 has_secure_password 9end
test/fixtures/users.yml
ruby
1bobu: 2 name: Bobu 3 email: bobu@example.com 4 password_digest: <%= User.digest('password') %>
test/models/user_test.rb
ruby
1class UserTest < ActiveSupport::TestCase 2 3 def setup 4 @user = users(:bobu) 5 end 6 7 test "vaildできるか" do 8 assert @user.valid? 9 end 10end
このとき
FAIL["test_vaildできるか", UserTest, 0.45356599998194724]
test_vaildできるか#UserTest (0.45s)
Expected false to be truthy.
test/models/user_test.rb:10:in `block in class:UserTest'
と期待通りの結果になりません。おそらくpassword
属性とpassword_confirmation
属性の値が一致していないからテストに弾かれてしまっていると思います。ymlファイルだけでuserの属性設定を完結させてテストを行うことはできないのでしょうか?
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。