hibernate测试策略

本文关键字:测试策略 hibernate | 更新日期: 2023-09-27 18:16:44

我正在考虑在下一个项目中抛弃所有存储库类,直接在我的服务类中使用ISession。这样做的原因是我的存储库类只是倾向于将调用转发到ORM(即没有真正的逻辑)。

最大的缺点是,它使单元测试更难,我想知道是否有任何其他方法来测试我的服务没有数据库(没有内存db像sqlite请)?模仿ISession是个坏主意吗?

还是应该坚持使用瘦存储库类?

hibernate测试策略

模拟session是个坏主意吗?

不,这是个好主意。如果你的服务类依赖于session,你可以这样做来测试它们。虽然有设计的味道,因为你的服务类依赖于NHibernate,但我想你可以接受。

模拟ISession可能看起来很容易,但我发现很难进行适当的模拟。特别是如果使用了LINQ扩展方法。

我会坚持使用存储库。与ISession等通用接口相比,更容易理解对存储库方法的期望。