我需要在更新的时候验证一个字段存在,而在创建的时候不验证。
model 中的代码:
class Ent < ApplicationRecord
validates :name, presence: true, on: :update
end
测试代码:
require 'test_helper'
class EntTest < ActiveSupport::TestCase
test "ent attributes must not be empty when creating" do
ent = Ent.create
assert ent.invalid?
assert ent.errors[:name].any?
end
test "ent attributes must not be empty when updating" do
ent = Ent.first
ent.update(name: '')
assert ent.invalid?
assert ent.errors[:name].any?
end
end
然而以上两个测试竟然都通过了,按道理应该是前面那个应该失败的。
请问我哪里写错了吗?谢谢。(把验证那行注释掉,两个测试都正常失败)