gpt4 book ai didi

ruby-on-rails - 如何在 RSpec 中测试空白/空字符串以进行包含验证?

转载 作者:行者123 更新时间:2023-12-05 05:26:28 25 4
gpt4 key购买 nike

我的验证确保必填字段只能设置为 AR:

在模型中:

validates :status_code, inclusion: { in: %w(A R) }

在 RSpec 中,我有以下规范:

it { expect(@car).to allow_value("A", "R").for(:status_code) }
it { expect(@car).to_not allow_value(nil, "").for(:status_code) }

第一个 RSpec 通过,但第二个出现错误:

Failure/Error: it { expect(@car).to_not allow_value(nil, "").for(:status_code) }
Expected errors when status_code is set to "", got no errors

我错过了什么?我正在使用 RSpec 3.1。

最佳答案

内置验证器接受 bool 选项 :allow_blank:allow_nil 来控制当值是这两者之一时它应该如何表现。试试这个:

validates :status_code, inclusion: { in: %w(A R), allow_blank: false, allow_nil: false }

添加一个存在验证器来处理 nil 和空字符串可能也行得通:

validates :status_code, inclusion: { in: %w(A R) }, presence: true

关于ruby-on-rails - 如何在 RSpec 中测试空白/空字符串以进行包含验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26037662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com