我正在尝试为name属性编写验证测试,以检查它是否存在。我的user_test.rb文件:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
我的user.rb文件:
require 'test_helper'
class UserTest < ActiveSupport::TestCase
def setup
@user = User.new(name: "Example User", email: "user@example.com")
end
test "should be valid" do
assert @user.valid?
end
test "name should be present" do
@user.name = " "
assert_not @user.valid?
end
end
测试时我在控制台中的I / O:
class User < ActiveRecord::Base
validates(:name, presence: true)
end
答案 0 :(得分:3)
您没有收到错误,因为它不是nil
。了解nil
和blank
here
您需要提供这样的验证,以避免出现空白值:
validates :name, presence: true, allow_blank: false
希望它有所帮助!
答案 1 :(得分:1)
问题是,presence: true
验证属性是否不是nil
。您需要使用allow_blank
来验证字符串是否为空。
validates :name, presence: true, allow_blank: false
查看有关此主题的API documentation。