コントローラーの JSON 応答をテストしようとしていますが、
ここに私のモデルがあります:
class SalesRep < Person
include Mongoid::Document
end
#Here is Class Person which SalesRep Inherits from:
class Person
include Mongoid::Document
field :nf, as: :first_name, type: String
field :nl, as: :last_name, type: String
field :ttl, as: :title, type: String
field :ph, as: :phone_num, type: String
field :em, as: :email, type: String
attr_accessible :first_name,
:last_name,
:title,
:phone_num ,
:email
end
これが私の Controller#index です:
def index
@sales_reps = SalesRep.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @sales_reps, root: false }
end
end
そして、これがJSON応答をテストしようとしている私のrspecテストです:
require 'spec_helper'
describe SalesRepsController do
let(:valid_attributes) { { first_name: "Seth", last_name: "McFee" } }
describe "GET index" do
let!(:sales_rep1){ SalesRep.create! valid_attributes}
it "return JSON-formated content" do
get :index, format: :json
expect(response.body).to have_content sales_rep1.to_json
end
end
end
そして、ここにシリアライザーがあります:
class SalesRepSerializer < ActiveModel::Serializer
attributes :id, :first_name, :last_name
end
ここにテスト出力があります: 1) SalesRepsController GET インデックスは JSON 形式のコンテンツを返します
Failure/Error: expect(response.body).to have_content sales_rep1.to_json
expected to find text "{\"_id\":\"52171a4fd7037ee84e000001\",\"em\":null,\"meeting_ids\":[],\"nf\":\"Seth\",\"nl\":\"McFee\",\"ph\":null,\"sex\":1,\"ttl\":null}" in "[{\"id\":\"521718ced7037e15c2000001\",\"first_name\":\"Mark\",\"last_name\":\"Doe\"},{\"id\":\"52171a4fd7037ee84e000001\",\"first_name\":\"Seth\",\"last_name\":\"McFee\"}]"
ご覧のとおり、テストは nf と nl を見つけることを期待していますが、代わりにフィールド Aliases (それぞれ first_name、last_name ) を受け取っています。問題はわかりますが、修正方法がわかりません!
検索中に使用するヘルプ/アドバイス/ヒント/キーワード。高く評価されています。
PS、投稿を読みやすくするために、一部のデータは非推奨です。
PPS、下手な英語でごめんなさい。