2015-10-07 59 views
0

我構建了一個對http請求有反應的應用程序。 到目前爲止,可以檢查日誌文件和表格。我用curl發送請求,如:Rails 4.2.3測試我的應用程序REST響應

curl -u test -X POST http://127.0.0.1:3000/api/information -d '' 

但是現在我包含了某種響應機制。我現在的問題是我有什麼端口用於我的迴應? 它是端口80(標準HTTP端口)?是否有一些CLI工具可用於處理會話?

回答

0

端口取決於您的配置以及您在聲明服務器時使用的參數。默認情況下,rails在端口3000上啓動 - 使用端口80在大多數情況下將需要使用sudo。啓動rails服務器時,您可以在輸出中看到端口。

$ rails server 
=> Booting WEBrick 
=> Rails 4.2.1 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 

有幾種瀏覽器擴展,如Postman其發送REST請求提供GUI - 中比試圖在怪物捲曲調用拼湊這一切更簡單的方法。

這對調試很有用 - 但是手動測試你的應用程序是非常容易出錯的,並且是已知的不完整和有缺陷的方法*。相反,你應該考慮使用自動化測試。

實施例的RSpec request spec

# spec/requests/pets_api_spec.rb 
require "rails_helper" 
RSpec.describe "Pets API", type: :request do 

    subject { response } 
    let(:json) { JSON.parse(response.body, symbolize_keys: true) } 
    let(:pet) { Pet.create(name: 'Spot') } 

    describe "viewing a Pet" do 
    before { get pet_path(pet) } 
    it { should have_http_status :ok } 
    it "has the correct JSON response" do 
     expect(json[:type]).to eq 'Pet' 
     expect(json[:data][:name]).to eq 'Spot' 
    end 
    end 

    describe "creating a Pet" do 
    let(:valid_session) do 
     # setup session here. 
    end 

    before do 
     post "/pets", { type: 'Pet', data: { name: 'Doge' } }, valid_session 
    end 
    it { should have_http_status :created } 
    # ... 
    end 
end