13

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

4

3 回答 3

17

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

于 2008-11-21T19:09:48.113 回答
5

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

如今,大多数 ORM 都提供某种查询语言,无论是 LINQ 或 HQL,还是其他风格。因为正确的单元测试要求您实际上不访问数据库,所以您必须模拟 ORM,这样做是您能想到的最大痛苦。这不值得,IMO。最终,您只需要测试您是否在代码中编写了正确的查询;您根本没有得到回归值,并且可以通过检查代码更好地服务于您的目的。

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

于 2009-02-06T22:35:45.720 回答
4

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

于 2008-11-21T19:34:50.840 回答