Help us understand the problem. What is going on with this article?

ActiveModel::SerializerのRspec

はじめに

SerializerのRSpecについて備忘録で残しておきます。

参考にしたのはこちらのドキュメント

ソースコード

Serializerを使って、idnameemailのみを返すjsonを実装しました。

user_serializer.rb
class UserSerializer < ActiveModel::Serializer
  attribute :id
  attribute :name
  attribute :email
end

そのテストコードがこちら

ポイントだと思うところはこちらの2つ
1. Serializerのインスタンスを生成する必要がある
2. .to_jsonメソッドのオプションを使用して、返ってくるデータのカラムを指定する必要がある

アソシエーションがある場合は、includeオプションを利用するとうまいこと書けると思います。

user_serializer_spec.rb
require 'rails_helper'

RSpec.describe "UserSerializer", type: :serializer do
  context "when create user" do
    let(:user) { create(:user) }
    it "matches to serialized JSON" do
      serializer = UserSerializer.new(user)
      expect(serializer.to_json).to eq(user.to_json(:only => [:id, :name, :email]))
    end
  end
end
mightysosuke
駆け出したばかりのRailsエンジニア
oceangate
東京都五反田のHRスタートアップのOCEAN GATEが開発・運営する、就活生向けWebサービス「イッカツ」のQiitaアカウントです。イッカツを開発するエンジニアの私たちが、様々な気づきを記事にしてQiita上にアップしていきます。 また、イッカツでは一緒に就活市場を変革するWebエンジニアを随時募集中です!!!!!!!
https://1katsu.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした