○テストケース
基本は200 successをチェックします。
jsonの値をチェックしたり、モデルの増減を調べたりしますが、それは他のサイトで何を書くべきか調べてください。
it "200 success" do
get url, params
expect(response).to have_http_status 200
end
普通のrspecと同じですね。
getで、paramsと一緒にurlを叩くとうまくいきます。
という流れです。
○全体の流れ
Rspec.describe InternalApi::Books, type: :request do
describe 'GET /books/show' do
let(:url) { "/internal/books/show" }
let(:book) { create(:book, title: 'ノルウェイの森', author: '村上春樹') }
let(:params) do
{
id: book.id,
access_token: "aaaaaaaaaaaaa"
}
end
# "do {} end == {{}}" 中の{}はハッシュです。紛らわしいですが。
# ここまででurlとparamsを作成しました。
it "200 success" do
get url, params
expect(response).to have_http_status 200
end
# urlとparamsをgetメソッドに渡すと成功します。
○コツ
この形さえ抑えてしまえば、テストデータを作成することと、マッチャを変更するだけで汎用可能です。