单元测试数据访问层

时间:2009-12-07 08:32:28

标签: .net unit-testing

我想测试数据层,我该怎么做?我正在使用NUnit进行业务对象测试。我必须使用模拟对象(我之前从未使用过)吗?

如果有人可以指导我朝着正确的方向前进,我将不胜感激。

2 个答案:

答案 0 :(得分:4)

你必须这样做:

  1. 将您的业务层(或控制器层)与数据访问分开。确保您的数据访问层完全干净。你需要模拟才能做到这一点。
  2. 如果您正在使用诸如NHibernate之类的ORM,请将数据库供应商更改为轻量级(例如sqlite,将其设置为配置中的内存),以便您可以针对in执行测试-memory数据库。通过这种方式,您不必担心资源清理等杂乱的事情。当然,您需要在进行测试之前预先填充数据。
  3. 这是关于单元测试DAL的an answer,您可能会发现它很有用。

答案 1 :(得分:1)

使用模拟对象取决于您的单元测试。如果您不想初始化许多对象来测试单个对象,您可以使用模拟来模拟其他对象的行为。

为了测试DAL对象,每次运行测试时都必须重置DB状态。由于在数据库上运行测试将创建许多可能会更改数据库状态的记录。