Boto3 利用 Pytest + Moto 測試 AWS API

2020-05-03 AWS, Python

最近利用 Boto3 開發 AWS API 遇到了一個窘境,這個開發專案是用於實現 AWS Organizations 建立 Linked-Account 的自動化 Lambda,但是在開發過程中,尤其是在寫 create_account() 時,總不能測試一次就建一個 AWS Account …

後來找了一下社群,發現了 Moto 這個 AWS 測試的框架,可以讓你在 Unit Testing 模擬 AWS API 情境,多數的 API 完成度都還算高,尤其是我想測試的 create_account() 相關 API 都有支援。

因為是測試,所以搭配 Pytest + Moto 作為我的 Unit Testing 框架,依然可以透過 Pypi 安裝 Moto:

就拿我的案例來說,範例程式碼:

moto 的測試程式碼:

  • @mock_organizations 模擬出 organizations 的環境
  • test case 中驗證了 create_account() 返回的值

透過 moto 就可以先對 API 先進行開發,而不是還在開發中就一直對 AWS API 執行,減少許多執行後要收尾的困擾 … 當然上線後仍然要對 AWS API 執行動作。

Reference

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱

%d 位部落客按了讚: