另一個技巧是,如果你有一個本地測試數據庫,測試程序能通過提供IP地址或主機名進行檢測。如果不是“localhost/127.0.0.1”,這就有連接在實際使用數據庫上進行測試的風險。
關于測試日期的體會
如果你想存儲日期信息,你大概想確認你存的日期信息是否正確。請注意以下幾點。
首先先問自己,是誰創建該日期。如果是你的應用程序,那驗證比較簡單,因為你可以通過查看數據庫中的具體日期進行比較。如果是數據庫本身創建該日期,可能作為一個缺省字段,那你可能就會有些問題。例如,你能確保你代碼所代表的時區和數據庫的時區一致嗎?從沒有聽說過數據庫是以格林尼治標準時間為準顯示時間和日期的。你能確保運行應用程序的計算機上的時間和數據庫所在計算機上的時間保持一致嗎?如果不是,你必須在進行時間的比較時留出一定的誤差。
如果你遇到這些情況,有些事是你可以做的:
如果你預先知道所用的時區,在測試前將所有日期和時間全部轉換成那個時區的日期和時間。
在比較時間時設立一定的誤差,比如說幾分鐘、幾小時或幾個月?瓷先ト狈φf服力,但至少它能捕獲諸如日期為空或1970年1月1日等錯誤。
總結
在本文中,我想說:
單元數據庫測試是一件值得做的事;
如果你能給一系列測試程序一個對應的數據庫,測試本身并不非?膳。
還有其他方法能解決這一問題。我還不能確信模仿對象(Mock Object)這一方法。就我對這一方法的理解,模仿對象模擬了一個系統中間層(在本文中,是數據庫操作系統),使得模仿的數據庫總能返回你想要的數據。我比較欣賞這一概念,它鼓勵你對測試進行分層,可能劃分成SQL方面的測試和Java語言方面的測試,從而對模仿的ResultSet對象進行測試。
我比較關注那些能導致一次能使兩個或兩個以上的數據表產生變化的操作。在這種情況下,用模仿對象方法進行數據庫的維護和實現比較困難。當然,我還要找到一種好方法進行數據庫中SQL方面的測試,從而確認數據被正確地存儲到數據庫中。
文章來源于領測軟件測試網 http://www.kjueaiud.com/