rspec:验证序列化程序的关联

时间:2016-06-04 14:57:44

标签: ruby-on-rails rspec serializer

# model
class Post < ActiveRecord::Base
  has_many :comments
end

# model spec
RSpec.describe Post, type: :model do
  subject { build(:post) }
  it { is_expected.to have_many(:comments) }
end

以上是验证模型has_many关联的测试用例。同样,是否有任何选项可以为Serializer验证相同的内容?

# serializer
class PostSerializer < ActiveModel::Serializer
  has_many :comments
end

# serializer spec
RSpec.describe PostSerializer, type: :serializer do
  let(:serializer) { PostSerializer.new(create(:post)) }

  # validation for `has_many` association.
end

1 个答案:

答案 0 :(得分:0)

我不认为active_model_serializers有一个RSpec匹配器,它是一个单独的第三方gem。您最好的办法是使用序列化程序生成as_json的哈希值,并将其结果与测试结果进行比较。