2013-03-08 90 views
13

我正在嘗試編寫一套自動化集成測試來測試我的C#客戶端庫調用Yahoo Fantasy Sports API。幾個API調用需要OAuth令牌,這是我遇到一些困難的地方。我可以使用Web瀏覽器生成訪問密鑰和機密,然後在我的測試代碼中傳遞這些內容,但令牌在一小時後過期,所以我需要手動重新生成這些內容並隨時更新測試配置,以便隨時運行試驗。需要OAuth令牌的單元測試API

當需要OAuth令牌時,是否有編寫API集成測試的最佳實踐?

+0

你不能自動生成密鑰嗎?有沒有REST API?或者你可以在代碼中執行http請求。 – blank 2013-03-08 15:40:36

+0

@Sean,你是如何最終嘲笑Yahoo Fantasy Sports API的?你有沒有創建一個代碼框架嘲笑它?我也需要模擬API,我想了解你是如何做到的。 – 2014-04-11 15:18:49

+0

我從來沒有得到充分的嘲弄。我有一個框架正在進行中,您可以在這裏查看:https://github.com/sconno05/yahoo-fantasy-football-tools。我最終將這些標記置於環境變量中,但仍然需要通過Web管理頁面重新生成這些標記。 – Sean 2014-04-14 16:43:43

回答

3

通常,這樣的api提供了一種獲取身份驗證令牌的方式,而無需使用瀏覽器。我不確定雅虎體育是否是其中之一。

通常你必須創建一個應用程序來訪問OAuth2系統,然後他們給你一個ClientID和ClientSecret,然後你點擊一個令牌URL並接收到一個小時有效的訪問令牌。

雖然你可能想要考慮沒有集成測試。如果我是你,我會簡單地嘲笑Api響應並在測試中使用它。因此,請爲每個呼叫提供一個響應樣本,然後創建一個虛假響應,無論何時您點擊該響應都會返回該響應。你可以繼續運行你的測試。

您需要回答的問題是:我測試了什麼?你正在測試第三方APi還是你想測試你自己的代碼?

此外,不要忘記每個API允許在特定的時間窗口內被擊中特定次數。還有一個假的原因,我會說

+0

如果我正在測試實現OAuth的第三方API,該怎麼辦? – 2017-05-19 06:01:21