如何将ensure_inclusion_of用于任意列表

在我的rails项目中,我有一个属性为foo的模型。我有一个vaildation,确保foo的任何值都在一个数组中。这使用带有:in选项的验证。 我想用rspec / shoulda测试一下。我认为ensure_inclusion_of应该测试这个验证,但它只适用于范围而不是数组。如何使用数组或编写自己的匹配器来执行此操作?     
已邀请:
ensure_inclusion_of
用于检查模块是否包含在当前类中。 如果您想测试
validates_inclusion_of
,您可以自己编写RSpec,或者安装Shoulda并使用它的宏。 在这里,我验证用户模型上的
gender
字段。
describe User do

  it { should validate_presence_of(:gender) }
  it { should allow_value("male").for(:gender) }
  it { should allow_value("female").for(:gender) }
  it { should_not allow_value("other").for(:gender) }

end
    
您现在可以这样写:
it { should ensure_inclusion_of(:gender).in_array(%w(male female)) }
    

要回复问题请先登录注册