gpt4 book ai didi

ruby-on-rails-3 - 我该如何测试:inclusion validation in Rails using RSpec

转载 作者:行者123 更新时间:2023-12-03 07:23:40 25 4
gpt4 key购买 nike

我的 ActiveRecord 中有以下验证。

validates :active, :inclusion => {:in => ['Y', 'N']}

我正在使用以下内容来测试我的模型验证。

should_not allow_value('A').for(:active)
should allow_value('Y').for(:active)
should allow_value('N').for(:active)

有没有更干净、更彻底的测试方法?我目前正在使用 RSpec2 和 Shoulda 匹配器。

编辑

环顾四周后,我发现,这可能是一种“好的”测试方法,应该不会为此提供任何内容,任何需要它的人都可以为其编写自己的自定义匹配器。(并且可能将其贡献给该项目)。一些可能有趣的讨论链接:

  • 指向上述内容的链接。 Link 1 , Link 2

  • should_ensure_value_in_range 这个接近于可以使用的内容,但只接受范围而不是值列表。自定义匹配器可以以此为基础。

最佳答案

使用shoulda_matchers

在最新版本的 shoulda-matchers 中(至少从 v2.7.0 开始),您可以执行以下操作:

expect(subject).to validate_inclusion_of(:active).in_array(%w[Y N])

这测试验证中可接受值的数组是否与此规范完全匹配。

在早期版本中,>= v1.4 ,shoulda_matchers 支持此语法:

it {should ensure_inclusion_of(:active).in_array(%w[Y N]) }

关于ruby-on-rails-3 - 我该如何测试:inclusion validation in Rails using RSpec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7415660/

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