0
我有一個網關類的代碼,它向公司內部的API發出請求。我如何進行單元測試?我如何測試(使用RSpec)HTTP請求在Rails中發送(作爲單元測試的一部分)?
class XGateway < BaseGateway
self.target_url = ENV["X_URL"]
def activate(serial_number:, comment: nil)
expecting 204 do
connection.put do |req|
req.url "/api/v1/hw/#{serial_number}/activate"
req.params = { comment: comment }
end
end
end
def deactivate(serial_number:, comment: nil)
expecting 204 do
connection.put do |req|
req.url "/api/v1/hw/#{serial_number}/deactivate"
req.params = { comment: comment }
end
end
end
end
的connection
是法拉第請求對象和expecting
是讓方法知道它預計,有效響應其狀態的方法。兩者都在XGateway繼承的BaseGateway中定義。
現在我需要做什麼來這裏測試
據我瞭解,每個方法(在單元測試的範圍是什麼?):
- 測試,一個HTTP請求與發送正確的PARAMS
- 檢驗正確的行爲時,希望滿足(具有響應狀態代碼204)
- 檢驗正確的行爲沒有履行期待時(響應比204不同的狀態代碼)
但是,如何測試一個http請求已被髮送?
您可以使用[WebMock](https://github.com/bblimke/webmock) –