单元测试c#数据库依赖代码

本文关键字:代码 依赖 数据库 单元测试 | 更新日期: 2023-09-27 18:18:31

我想为依赖数据的代码创建单元测试。例如:

一个用户类,具有常用的create, update &删除。

如果我想为"用户已经存在"的场景创建一个测试,或者更新或删除测试。我需要知道一个特定的用户已经存在于我的数据库中。

在这种情况下,为这些可以以任意顺序运行的操作进行独立测试的最佳方法是什么?

单元测试c#数据库依赖代码

当您有这样的依赖关系时,请考虑您是否想要集成测试而不是单元测试。如果您确实想要进行单元测试,请查看使用Mock Data。

集成测试:测试代码如何与系统的不同部分集成。这可以确保您的代码正确地连接到数据库,或者在文件系统上创建了文件。这些测试通常非常直接,并且不具有"能够以任何顺序运行"的相同约束。然而,它们需要特定的配置才能通过,这意味着它们可以很好地从开发人员转移到开发人员。

单元测试:测试代码执行函数的能力。例如,"我的函数AddTwoNumbers(int one, int two)实际上是两个数字相加吗?"单元测试是为了确保代码中的任何更改都不会影响预期的结果。

当进入像"我的代码调用数据库是否正确输入结果?"这样的领域时,您需要考虑单元测试并不意味着与系统交互。这就是我们使用"模拟数据"的地方。模拟类和模拟数据取代了实际的系统,以确保代码"以我们期望的方式调用"。困难的部分是,这是可以做到的,但大多数。net框架类没有提供所需的接口,以方便地做到这一点。

有关更多信息,请参阅测试中的MSDN页面。另外,请考虑这篇关于Mock Data的MSDN文章。