如果還沒有加入 rspec,先在 Gemfile 中加入
group :development, :test do
# ...
gem "rspec-rails"
# ...
end
並且記得跑 bundle install
建立 rspec 所需的檔案
rails generate rspec:install
建立 spec 下的資料夾結構與檔案
mkdir spec/api
mkdir spec/api/api_v0
我們來測試 app/api/api_v0/ping.rb
這隻檔案
touch spec/api/api_v0/ping_spec.rb
修改 .rspec
的基礎設定
--require rails_helper
--format documentation
加入 format documentation
這樣以後再跑測試時輸出會像是文件一樣可以閱讀。
這邊我們來測試第一支 API,我們知道結果會回 "pong"
字串,那麼就可以這樣寫
describe ApiV0::Ping do
context 'GET /api/v0/ping' do
it 'should return 200 and pong' do
get '/api/v0/ping'
expect(response.status).to eq(200)
expect(JSON.parse(response.body)).to eq("pong")
end
end
end
在 console 輸入 rspec
應該就可以看到以下成功的結果囉
ApiV0::Ping
GET /api/v0/ping
should return 200 and pong
Finished in 0.19619 seconds (files took 3.67 seconds to load)
1 example, 0 failures
第一個測試完成!