如果還沒有加入 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

第一個測試完成!

Copyright © NicLin 2019 all right reserved,powered by Gitbook該頁面生成時間: 2019-04-09 10:00:37

results matching ""

    No results matching ""