2013-03-18 61 views
0

測試HTTP請求是否未被測試的最簡單方法是什麼?測試HTTP請求不是在Rails中進行的

說,我希望我的應用程序不發送API調用到遠程服務器,如果用戶不提供用戶名。

我應該在Rails應用程序中編寫什麼RSpec測試來測試HTTP請求是否永遠不會生成? fakeweb能以某種方式幫助我嗎?

回答

2

您應該嘗試WebMock
它允許你檢查一些url被請求的次數。

assert_requested :post, "http://www.example.com", :times => 0 
0

我想我明白你在問什麼。你只是想錯誤檢查,看看發送的請求或有效。

如果用戶名!=空 - > api調用else返回'您沒有輸入用戶名'。

或者您可以使用api的返回數據來檢查請求是否有效。

我希望這會有所幫助。

+0

對不起,我需要讓我的問題更清楚。我應該在Rails應用程序中編寫什麼樣的RSpec測試來測試HTTP請求是否永遠不會生成?我也更新了我的問題。 – 2013-03-18 15:36:22

1

假設我們有下面的代碼向GitHub的API發出有條件的請求。

if condition 
    user = Octokit.user 'dideler' 
end 

使用RSpec的,你可以測試對象沒有收到消息的方法調用。

expect(Octokit).to_not receive(:user) 

如果通過,則表示請求未被執行。