簡體   English   中英

對選擇查詢進行單元測試

[英]Unit testing a select query

我將返回一組行,每個行代表一台台式機。

我為找到一種可以對此進行單元測試的方法而感到困惑。 我真的沒有什么可以想到的極端條件或標准可以測試。 我可能不希望檢查股價,因為我得到的數據確實有5個月了。 這不像是存儲人員詳細信息,您可以在其中檢查一定長度的字符是否始終有效,或特殊字符等。或者貨幣和其他貨幣(£,$等)作為字符串。

我將如何測試這種結果集?

另外,在測試查詢的返回集時,還有一些問題:

1)測試行數與在服務器上運行查詢時的行數相同,這很脆弱,因為有人可能會更改表數據。 如果您有一個測試服務器,這是什么,除非上載更改腳本,否則沒有人更改?

2)您是否測試數據集對象不為空? 因此,如果將其實例化為null,但不是在執行查詢后將其保留,則該值將保持不變(這並不證明數據正確無誤,只是表明已檢索到數據)。

謝謝

您可以使用類似NBuilder的組件來模擬數據庫。 並且,您可以管理數據集的所有方面時,可以測試數據庫交互的多個方面:查詢返回的記錄數,某個字段中的值范圍。 而且,由於數據集總是使用參數創建的,因此您選擇的數據總是相同的,因此您可以重現與數據庫完全脫鈎的測試。

1-

a)決不以任何理由針對生產服務器進行測試。

b)測試應該從已知的配置開始,您可以使用模擬對象或測試數據庫來實現(有些人可能會認為單元測試應該使用模擬對象,而集成測試應該使用測試數據庫)。

至於測試用例,請從基本功能測試開始-在“常規”行中插入並確保將其恢復。 如果您以后進行重構,將不勝感激。 確保程序正確響應列為空或為空的列。 在所有數據庫字段中輸入最大值和最小值,並確保要存儲它們的對象字段適合該分辨率。 檢查數據庫中的重復記錄或丟失的記錄。 如果您有生產數據,請抓取其快照以放入測試數據庫中,並確保正確加載。 是否有一個值會長期導致程序其他部分出現問題? 也在這里檢查。 釋放代碼后,將在生產中發現的破壞系統的所有值添加到測試列表中(回歸測試)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM