|
|
˙使用NUnit對資料庫應用程式執行單元測試
使用NUnit對資料庫應用程式進行單元測試,和使用NUnit對一般的應用程式執行單元測試有何不同呢?如果沒有什麼不同,那就使用一般的做法對資料庫應用程式進行單元測試即可,不需要另外做特殊的控制。 對資料庫應用程式進行單元測試最特殊的地方就是我們要確保每一回進行測試的時候,資料庫中的記錄必須完全相同,這樣我們的Test Case執行時才有辦法獲得穩定的結果。假設每一回進行測試的時候,資料庫中的記錄都不一樣,有可能原先可以測試通過的Test Case都會變的無法通過測試,造成測試結果不穩定,測試也會變的毫無意義(當我們的Test Case會利用記錄的自動遞增欄位的內容值當做判斷執行是否成功的依據時這種狀況最明顯)。為了讓測試資料庫應用程式變的有意義,我們必須利用NUnit提供的SetUp和TearDown Attribute替測試程式執行資料庫初始化的動作,每一次測試都填入相同的記錄進行測試,並在測試結束後刪除資料庫中所有的記錄,等待下一次執行再填入相同的新記錄,確保每一次測試都可以得到正確而且穩定的測試結果。 除了每一次進行測試時要確保資料庫中的記錄都要完全相同之外,測試資料庫應用程式的Test Case在製作上也會有一點小技巧,例如資料庫應用程式中有一個刪除記錄的功能,當我們要測試刪除記錄的功能是否正常時,我們就可以先執行刪除記錄的動作,例如刪除會員編號為1的記錄,然後再查詢會員編號為1的記錄是否存在,如果存在,表示刪除記錄的功能執行失敗,否則就表示刪除記錄的功能成功。 |
|
|
|
|
|
˙以下就是對資料庫應用程式進行單元測試需要注意的事項:
|
| |
1. 對測試資料庫進行測試 |
|
|
對資料庫應用程式進行單元測試第一件要注意的事就是要對測試資料庫進行測試,不要對公司中作業中的資料庫進行測試,換句話說,我們要另外建立一個供測試使用的資料庫,以免測試程式在測試過程中破壞掉資料庫中重要的記錄。 |
| |
|
|
|
2. 使用[SetUp]和[TearDown]標籤初始化資料庫內容和清除資料庫內容 |
| |
測試程式可以利用NUnit提供的SetUp標籤執行資料庫初始化的工作,每一次填入相同的記錄到資料庫中供測試程式使用,使用TearDown標籤在測試結束後執行清除資料庫記錄的動作,以便下一次測試時填入新的記錄。 |
|
|
例如我們要對使用Members資料表的資料庫應用程式執行單元測試,我們就可以測試以下幾種狀況: ˙測試SelectMember:檢驗查詢記錄的功能是否正確。 ˙測試InsertMember成功和失敗兩種情況:檢驗新增記錄的功能是否正確。 ˙測試UpdateMember:檢驗修改記錄的功能是否正確。 ˙測試DeleteMember:檢驗刪除記錄的功能是否正確。 ˙測試Login成功和失敗兩種情況:檢驗使用者登入的功能是否正確。 ˙… |
| |
為了要進行上述的測試,我們可以先建立好Members資料表,並在資料庫中建立好需要的Stored Procedure,包括:SelectMember、InsertMember、UpdateMember、和DeleteMember。 |