本來應該在 Part.3 這一篇就應該做個完結,但還是有一件事情要交代,所以又開了一篇來做說明,這一篇會有關於前陣子所發的文章「準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script」有關,在「Repository 測試使用 LocalDB - Part.3」裡面所使用的是 CSV 匯入測試資料,而接著就會說明使用 Insert SQL Command 的方式匯入測試資料的做法。
請先看以下的文章,以文章內的其中一種方式產生 Customers Insert data Script 指令碼
「準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script」
請記得要把 Customers.data.sql 檔案的屬性做調整
我在原本的 RepositoryTests 專案裡另外建立一個 UnitTest1.cs 檔案,檔案名稱我就不改了,這個單元測試的內容與 CustomerRepositoryTests.cs 是一樣的,差別就在匯入測試資料的部分。
單元測試類別加上 DeploymentItem Attribute,使用 Customers.data.sql
在 PrepareData 私有方法裡,則是使用 File 類別讀取 Customers.data.sql 的 script 內容,然後執行 Script 內容以新增測試資料,
以上就是與 Part.3 有比較大差別的部分,不過也是有一些小地方要注意。例如原本在資料庫裡的欄位資料是 NULL,而匯出為 CSV 資料的時候有時會處理為空白,但匯出為 Insert Data Script 的時候,則是會將把原本的欄位資料保留,所以 NULL 的地方就會保持 NULL,要特別留意。
最後的測試結果
基本上兩種方式我都會用,現在是採用 Insert Data Script 的方式比較多,畢竟將資料匯出到 CSV 的事前準備以及使用都會有比較多的步驟,現在寫的測試越來越多的情況下,自然就會使用比較簡捷快速的方式來處理。
之後還會介紹幾種產生 Insert Data Script 的方式,請各位拭目以待。
以上
純粹是在寫興趣的,用寫程式、寫文章來抒解工作壓力