2011-12-28 65 views
0

目前我正在爲我的網站開發一個開放的API。由於API提供的所有信息都不受保護,因此我不打擾令牌,從而使API的開發變得更加容易。測試構建在rails環境上的API

我對API很新,因此我不確定開發人員希望檢索什麼,以及他們如何檢索它。目前,API是爲我自己的網站量身定製的。我想知道如何測試通過我的Rails開發環境在其他類型的環境中生成的API。

+3

curl是你最好的朋友。爲API查詢提供JSON響應並使用curl進行測試。 – 2011-12-28 20:30:24

+0

我最關心的是如何解析信息。我可以將這些信息轉換成簡單的to_json表示,開發人員會很高興嗎? 我從來沒有通過桌面環境在API上工作,所以我不知道他們是否期望別的東西。 – KayleL 2011-12-28 20:48:49

+0

任何Web API都應提供json和/或XML響應。從一個簡單的to_json開始,使用它,查看缺少的內容並修復它。 – 2011-12-29 07:22:40

回答

1

我會考慮使用Cucumber來測試你的API ..我有點不清楚你究竟在做什麼,但我通過Cucumber測試了APIs(自動化測試)。

你可以使用任何語言編寫你的黃瓜步驟,但我建議使用與你的應用程序相同的語言編寫它們(所以,紅寶石)。

您可以使用FactoryGirl(FactoryGirl.create)創建對象以插入數據庫並使用DatabaseCleaner自動刪除數據庫中的對象。

你會發現很多文檔使用Sinatra來嘲笑你的應用程序,但我認爲這不是一個好的做法。相反,我直接插在我的env.rb文件中使用此代碼使用我的Rails應用程序:

FactoryGirl.definition_file_paths = %w(custom_directory) 
FactoryGirl.find_definitions 

**module AppHelper 
    def app 
    YourAppApi::Application 
    end 
end 
World(Rack::Test::Methods, AppHelper)** 

你還需要確保你需要:

require ::File.expand_path('../../../config/environment', __FILE__) 
require 'cucumber/rails' 
require 'factory_girl_rails' 
require 'rack/test' 

其餘的(功能/ step_definitions)很容易....你可以在我的博客@ whitneytaylorimura.wordpress.com上看到他們/例子