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

问题描述:

感谢您阅读我的问题。关于为数据库层创建单元测试的建议

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

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

此外,我们没有使用任何模拟框架。所以我都很迷惑。

我需要知道我们如何从头开始做到这一点。还有什么可选的可用于嘲笑框架。

任何指针或样本将不胜感激。

再次感谢您。

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

这让我们对你的问题没有回答:你的数据库层测试应该做什么?这取决于你在该程序集中拥有什么样的逻辑!如果你有“业务或决策”逻辑应该测试一下,如果你有映射逻辑测试的话。如果所有的数据库层都使用(无论是哪种数据库框架)将数据加载到你的数据库上,那么你可能没有任何值得测试的东西。

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

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