2008-11-21 36 views
11

我是单元测试新手。但是,如何单元测试用实体框架编写的DAL,因此我可以确保我的DAL代码正常工作,但没有实际触及数据库?请有人提供尽可能详细的信息。如何正确单元测试我的DAL?

回答

15

如果你想测试你的数据访问层是否工作正确,你真的需要在某个时候对数据库进行测试,否则你实际上并没有测试它的效果。

+0

+1如果一个测试数据库不存在,真的应该创建一个(似乎OP是关心数据更新)。 – 2008-11-21 19:24:18

+1

模拟的作用是什么?有人可以解释一下测试数据库的作用吗? – 2008-11-21 20:27:02

4

当我单元测试我的DAL时,我使用事务并在单元测试结束时回滚,所以db是干净的。

4

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

现在大多数ORM都提供某种查询语言,无论是LINQ或HQL还是其他一些风格。因为一个适当的单元测试要求你实际上没有碰到数据库,所以你必须嘲笑ORM,这样做是你能想到的最大的麻烦。这不值得,国际海事组织。最终,您只会最终测试您在代码中编写了适当的查询;你根本没有回归价值,并且可以通过检查代码来更好地服务你的目的。

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