关于创建数据库层单元测试的建议

时间:2016-11-16 13:41:02

标签: unit-testing mstest

感谢您阅读我的问题。

我只是想知道如何为现有数据库层创建单元测试。截至目前,我的项目已经进行了单元测试,但没有为数据库层或任何从数据库插入/更新/删除数据的函数编写单元测试。

我们正在使用Microsoft测试。我认为这是一种方法 1)我们将动态创建数据库,即mdf文件,我们将保留我们的默认值,在我们的设置方法(Nunit)或初始化方法(MS测试)中,我们将模拟对象并将虚拟数据转储到表中。

我们也没有使用任何模拟框架。所以我都很困惑。

我需要知道如何从头开始做到这一点。还有任何可选的模拟框架。

任何指针或样品都将受到高度赞赏。

再次感谢你。

1 个答案:

答案 0 :(得分:0)

C#单元测试不得触及数据库,您应该模拟数据库。应该可以在几秒钟内在本地计算机上执行数千次单元测试(无需外部(互联网,数据库,其他应用程序))(并且您希望在构建代码时运行它们)。

这使我们无法解答您的问题:您的数据库层测试应该做什么?这取决于你在集会中有什么样的逻辑!如果您有“业务或决策”逻辑应该测试,如果您有映射逻辑测试。如果所有数据库层都使用(无论数据库框架)将负载放在您的数据库上,那么您可能没有值得测试的东西。

如果要测试数据库执行的逻辑(比如SP),你应该在数据库项目中执行,并且很可能不使用mstest。

当然你可以使用mstest来设置和拆除数据库并执行测试,但那些测试不会是单元测试。