我知道正確的SOLID原則與IOC相結合意味着您可以單元測試您的所有代碼,而無需通過嘲笑類依賴關係來實際訪問數據庫。在工作討論之後,我的問題是它是否值得實際測試您的數據訪問層本身。它值得自己測試數據訪問查詢嗎?
當您正確分離出您的代碼時,您的數據訪問方法通常會非常小。這裏是一個人爲的例子:
public class InvoiceQueries
{
public IEnumerable<Customer> GetAllCustomersWithOverdueInvoices(TimeSpan timeOverdue)
{
var results =
from invoice in Invoices
where invoice.DateDue - timeOverdue > DateTime.Now
select invoice.Customer;
return results;
}
}
是否值得寫的自動化測試(它不會是一個單元測試)來檢查你的查詢編寫正確?也許連接到一個真正的數據庫,甚至是內存數據庫,插入一些測試數據,然後檢查你的方法是否返回這些客戶?
一位同事說你絕對應該 - 應該測試一切。對我來說,在構建服務器上啓動和運行某種形式的T-SQL數據庫似乎是一項巨大的工作,更不用說事實上這些測試幾乎肯定會非常緩慢,並且可疑的有用性。
誰有經驗實際測試(以獨立的方式)他們的數據訪問層?