sun*_*eja 3 testing enums ruby-on-rails ruby-on-rails-4 rails-activerecord
假设我有一个名为CreditCard的模型.由于某些技术限制,最好将卡网络表示为枚举.我的代码看起来像这样:
class CreditCard < ActiveRecord::Base
   enum network: [:visa, :mastercard, :amex]
end
使用枚举时应该测试什么?
如果您使用数组,则需要确保订单保持不变:
class CreditCard < ActiveRecord::Base
  enum network: [:visa, :mastercard, :amex]
end
describe CreditCard, '#status' do
  let(:network) { [:visa, :mastercard, :amex] }
  it 'has the right index' do
    network.each_with_index do |item, index|
      expect(described_class.statuses[item]).to eq index
    end
  end
end
如果使用哈希,顺序无关紧要,但每个键的值都会.因此,确保每个键的数量相同,总是好的.