如何使用NUnit进行独立于数据的单元测试
本文关键字:数据 单元测试 于数据 NUnit 何使用 独立 | 更新日期: 2023-09-27 18:08:40
我希望运行Nunit测试,但我不希望测试依赖于数据。例如:如果我在测试服务器上运行我的单元测试,参考测试数据库,如果一些用户更改数据库值;它不应该对我的测试场景产生影响。然而,我希望我的测试场景引用oracle存储过程。谢谢……任何帮助将是非常感激的。此外,我对任何其他有能力实现这一目标的工具的想法持开放态度。
如果你真的要测试数据库,这不是单元测试,而是集成测试。
基本上你有两个选择其中一个有它的优点和缺点:
-
保持集成测试的想法,但以某种方式确保您正在使用的数据是您所期望的。
这可以使用测试数据库中的存储过程来实现,该存储过程在调用它时重新创建数据,您可以在测试初始化中调用此过程,然后执行所有测试。
主要的缺点在这里是测试将花费更多的时间比单元测试,并将花费更多的资源。的主要优点是可以确保代码与数据库很好地集成。 -
选择使用真正的单元测试,在此选项中,您将根本不使用数据库,而是在内存中创建表示数据库数据的对象。
因为您将在单元测试的安排部分创建这些对象,所以您可以确切地知道它们保存的是什么数据。
的主要缺点是您不能确保代码与数据库很好地集成。
的主要优点是测试将比集成测试花费更少的时间和消耗更少的资源,而且即使测试数据库关闭,您的测试也可以运行。
如果您愿意,实际上可以选择使用这两个选项,这很有用,因为每个测试都是从不同的角度测试您的代码。
关于单元测试和集成测试的更多信息可以在这里找到。