【发布时间】:2014-03-27 15:44:03
【问题描述】:
我知道正确的 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 数据库似乎需要做大量工作,更不用说这些测试几乎肯定会非常慢,而且有用性令人怀疑。
谁有实际测试(以孤立的方式)他们的数据访问层的经验?
【问题讨论】:
标签: sql database unit-testing testing data-access-layer