可测试性的最佳数据库访问模式是什么?

时间:2020-03-06 14:26:56  来源:igfitidea点击:

我已经阅读并涉猎了一些东西,包括活动记录,存储库,数据传输对象。哪个最好?

解决方案

"最佳"问题并非真正有效。世界充满了组合和变化。我们应该从必须回答的问题开始:我们要解决什么问题。回答后,我们将研究解决该问题的最佳工具。

尽管我同意"最佳"问题不是最佳形式(因为它们是如此武断),但它们也不是完全无关的。

在S.O.在这里建造的世界开发人员对"最佳"进行投票时,为什么没有最佳问题呢? "最佳问题"会引起讨论和意见分歧。

最终,当有人"谷歌""数据访问模式"时,他们应该来到此页面并看到大量答案,对吗?

这实际上取决于任务。至少我们应该了解并理解所有数据库访问模式,以选择最适合当前问题的一种。

这是一个很好的问题,应该引起一些思考。
数据库访问通常不受严格测试的约束,特别是没有自动化测试的约束,我当然希望增加对数据库的测试量。

我正在使用从Visual Studio内部运行的MbUnit测试框架进行一些测试。
我们的应用程序将尽可能使用存储过程,并且我编写的测试会设置数据库以进行测试,调用存储过程并检查结果。
对于相关存储过程的集合,我们有一个Cfile,其中包含对这些存储proc的测试。 (但是,到目前为止,我们的覆盖率可能约为1%!)。

主动记录是一个有吸引力的选择,因为Ruby内置了对自动化测试的强调。如果我要从头开始,那将是使用主动记录的重点。

存储库可能是可测试性最好的模式,因为它允许我们在需要测试时用模拟替换存储库。 ActiveRecord将模型与数据库联系在一起(有时很方便,但是通常很难测试)。