概要
Rspecのrequestsの部分を書く必要がありました。ここで初心者たる私はdescride
の後に続くGET
・POST
をどう書けばいいのかわからないのでこの記事に忘備録として残しておきます。
使用環境
docker・Ruby on Rails
方法
コンテナ内に入る
docker環境でプロダクトを作成しているのでexec
コマンドで中に入ってください(私たちのプロダクトはwebを使用しています。)
webの部分はcompose.yml
などを見て自身で置き換えてください
docker compose up
docker compose exec web bash
GET・POSTを判断する
下記のコマンドを打ってGET・POSTを判断してください
rails routes | grep ◯◯◯◯◯◯◯◯
ここの◯◯◯◯◯◯の部分は自身のプロダクトのspec/requests/admin/◯◯◯◯◯◯_spec.rb
を参考にしてください。
今回はrelease_note
の作成しているのでrelease_note
となっています。
rails routes | grep release_notes
結果
root@2c89aaab34d5:~/deeadada# rails routes | grep release_notes
release_notes GET /release_notes(.:format) release_notes#index
release_note GET /release_notes/:id(.:format) release_notes#show
admin_release_notes GET /admin/release_notes(.:format) admin/release_notes#index
POST /admin/release_notes(.:format) admin/release_notes#create
new_admin_release_note GET /admin/release_notes/new(.:format) admin/release_notes#new
edit_admin_release_note GET /admin/release_notes/:id/edit(.:format) admin/release_notes#edit
admin_release_note GET /admin/release_notes/:id(.:format) admin/release_notes#show
PATCH /admin/release_notes/:id(.:format) admin/release_notes#update
PUT /admin/release_notes/:id(.:format) admin/release_notes#update
DELETE /admin/release_notes/:id(.:format) admin/release_notes#destroy
あとはテストを書くだけ
あとは自身のcontroller
を見てテストを書いてください
例
ここの中身は濁すのですが、こんな感じで自身で判断して書いてください。上記のコマンドでGET・POST等が判断で切るのでそれで書いてください。
describe "GET /admin/release_notes" do
it "hogehoge" do
~~~~
~~~~
end
end
describe "GET /admin/release_notes/:id" do
it "hogehoge" do
~~~~
~~~~
end
end
describe "POST /admin/release_notes" do
it "hogehoge" do
~~~~
~~~~
end
end