2024年10月3日 星期四

Stored Procedure(預存程序)單元測試

上篇說明了基本使用,這篇就來實際應用在預存程序上,過去都是程式的部分做單元測試,而

資料庫預存程序的建置上,雖然過程中都會一邊實作一邊測試,但同樣都是當下,若需要異動

時,卻無法確保之前的介接是否正常,故預存程序的單元測試同樣重要...



這邊需要借用 EF Core Power Tools 工具,來幫我們快速產生 ER Model

有個資料庫 TestDb 並且有資料表 Persons,還有預存程序 ausp_GetPersonById_S 



而 SP 的內容挺單純的


在 feature 檔案,有個 GetPersonById 的測試案例


當你撰寫好測試案例時,記得一定要先「建置」,建置成功後可以滑鼠右鍵,叫出

Define Steps…,快速產生步驟檔


撰寫內容


跑測試通過


其中,撰寫測試案例時,有個最後驗證的 records,這個部分如何快速產生


可以透過 SSMS(SQL Server Management Studio)

工具 → 選向 → 查詢結果 → SQL Server → 以文字顯示結果 → 自訂分隔符號


然後開啟新的查詢,輸入你的條件後並且切換「以文字為輸出結果」項目,

就可以將查詢結果快速貼到測試案例,並且稍微調整即可


另外,若是查詢結果僅需要包含某幾筆資料再其中,而不用全部都符合

如下測試案例

相關驗證如下

將最終結果轉為對應的 Entity,並且使用 SequenceEqual() 方法比對,此時就對比對資料

結果是否有「包含」在集合中,就算符合


以上



參考



沒有留言:

張貼留言