pytest-bdd 是用 python 實作 cucumber 的框架,有在寫測試的開發者,肯定不能錯過

pytest-bdd 是用 python 實作 cucumber 的框架,有在寫測試的開發者,肯定不能錯過
上篇 使用 Memory 作為 Web API 的 Repository,這次改用 Postgresql 並搭配 DI Container,也包含了資料庫的操作驗證
在 python 利用 FastAPI 建立 API 非常的簡單,同樣的,要測試它也非常地容易,這裡我會使用一個簡單的例子,演練 pytest 測試 API (FastAPI)
之前有介紹過 TestContainers 在 .NET 的使用方式 傳送們,同樣的 Python 也可以使用它,就不再贅述太多;我將使用 WSL + Python 環境搭建起開發環境。
在測試時,TestContainers 它可以簡化我們產生 Container 的步驟,配置 Container 的方式也相當的簡單、明確;從同事得知 TestContainers,周末則來研究一下使用方式。
C# 9 開始就可以不用在主控台程式包含 main 方法(Top-level statements),在 .NET 6,ASP.NET Core 6 也支援了 Top-level statements 專案範本,已經直接套用此功能,我用 WebApplicationFactory 寫整合測試時,碰到一點小問題,以下是解決問題的經過
以往 ASP.NET Core 可以使用 TestServer 來進行整合測試,現在多了一個選擇 WebApplicationFactory,WebApplicationFactory 基於 TestServer 又封裝了更多的功能,我覺得使用起來又更簡單了,如果可以的話可以改用它
.NET Framework 可以利用 OWIN 把 Web API 掛載起來,用測試打進去,在 .NET Core 可以用 WebHost,如果你需要 .NET Framework 的請到以下連結https://dotblogs.com.tw/yc421206/2019/01/05/webapi_test_via_owin
之前有寫過用 TestServer 測試 Web API,[ASP.NET Identity] 使用 Microsoft.Owin.Testing 測試 OAuth Server 和 Web API,某些情境使用上會失效,比如 Redirect,後來又改用了 OWIN,就比較沒有問題了