2016年10月30日 星期日

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 的方式,請各位拭目以待。

 

延伸閱讀

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

系列文章

Repository 測試使用 LocalDB - Part.1

Repository 測試使用 LocalDB - Part.2

Repository 測試使用 LocalDB - Part.3

 

以上

沒有留言:

張貼留言

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。