Test ActiveModel::Serializer classes with Rspec

前端 未结 4 1922
故里飘歌
故里飘歌 2020-12-24 11:45

Given the following ActiveModel::Serializer class:

class SampleSerializer < ActiveModel::Serializer
  attributes :id, :name
end
4条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-24 12:18

    Example: You can writing this modern style.

    Category serializer:

    class CategorySerializer < ActiveModel::Serializer
      attributes :id, :name
    end
    

    RSpec:

    require 'rails_helper'
    
    RSpec.describe CategorySerializer, type: :serializer do
      let(:category) { FactoryGirl.build(:category) }
      let(:serializer) { described_class.new(category) }
      let(:serialization) { ActiveModelSerializers::Adapter.create(serializer) }
    
      let(:subject) { JSON.parse(serialization.to_json) }
    
      it 'has an id that matches' do
        expect(subject['id']).to eql(category.id)
      end
    
      it 'has a name that matches' do
        expect(subject['name']).to eql(category.name)
      end  
    end
    

提交回复
热议问题