Repository 測試使用 LocalDB - Part.4

本來應該在 Part.3 這一篇就應該做個完結,但還是有一件事情要交代,所以又開了一篇來做說明,這一篇會有關於前陣子所發的文章「準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script」有關,在「Repository 測試使用 LocalDB - Part.3」裡面所使用的是 CSV 匯入測試資料,而接著就會說明使用 Insert SQL Command 的方式匯入測試資料的做法。

請先看以下的文章,以文章內的其中一種方式產生 Customers Insert data Script 指令碼

準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script

 

image

請記得要把 Customers.data.sql 檔案的屬性做調整

image

 

我在原本的 RepositoryTests 專案裡另外建立一個 UnitTest1.cs 檔案,檔案名稱我就不改了,這個單元測試的內容與 CustomerRepositoryTests.cs 是一樣的,差別就在匯入測試資料的部分。

 

單元測試類別加上 DeploymentItem Attribute,使用 Customers.data.sql

image

在 PrepareData 私有方法裡,則是使用 File 類別讀取 Customers.data.sql 的 script 內容,然後執行 Script 內容以新增測試資料,

image

以上就是與 Part.3 有比較大差別的部分,不過也是有一些小地方要注意。例如原本在資料庫裡的欄位資料是 NULL,而匯出為 CSV 資料的時候有時會處理為空白,但匯出為 Insert Data Script 的時候,則是會將把原本的欄位資料保留,所以 NULL 的地方就會保持 NULL,要特別留意。

image

 

最後的測試結果

image

 


基本上兩種方式我都會用,現在是採用 Insert Data Script 的方式比較多,畢竟將資料匯出到 CSV 的事前準備以及使用都會有比較多的步驟,現在寫的測試越來越多的情況下,自然就會使用比較簡捷快速的方式來處理。

之後還會介紹幾種產生 Insert Data Script 的方式,請各位拭目以待。

 

以上

純粹是在寫興趣的,用寫程式、寫文章來抒解工作壓力