如何正确单元测试我的DAL?

时间:2008-11-21 18:32:14

标签: unit-testing entity-framework mocking data-access-layer

我是单元测试的新手。但是我如何对使用Entity Framework编写的DAL进行单元测试,这样我就可以确保我的DAL代码工作正常但实际上没有触及数据库?有人可以尽可能多地提供详细信息。

3 个答案:

答案 0 :(得分:15)

如果您想测试您的数据访问层是否正常工作,您确实需要在某个时刻针对数据库对其进行测试,否则您实际上并未对其进行测试。

答案 1 :(得分:4)

当我对DAL进行单元测试时,我在单元测试结束时使用事务和回滚,因此db是干净的。

答案 2 :(得分:4)

单元测试DAL是开发中非常常见的问题。在大多数情况下,我建议你跳过它。

现在大多数ORM提供某种查询语言,无论是LINQ还是HQL,还是其他一些风格。因为正确的单元测试要求您实际上没有打到数据库,所以你必须嘲笑ORM并且这样做是你能想到的最大痛苦。这不值得,IMO。最终,您最终只会测试您在代码中编写了正确的查询;您根本没有回归值,可以通过检查代码更好地满足您的目的。

我不是说你不应该测试你对DAL的使用;只是不要尝试单元测试。您仍应该为您的程序/系统进行一套集成和用户验收测试;让那些人处理测试你的数据访问。