如何使用NUnit进行数据独立单元测试

时间:2016-09-24 10:14:33

标签: c# oracle nunit

我希望运行Nunit测试,但我不希望测试与数据有关。 例如:如果我在测试服务器上运行我的单元测试,指的是测试数据库,以及某些用户是否更改了数据库值; 它不应该对我的测试场景产生影响。 但是我希望我的测试场景能够引用oracle存储过程。 谢谢....任何帮助将非常感谢。 此外,我对任何其他有能力实现这一目标的工具持开放态度。

1 个答案:

答案 0 :(得分:0)

如果你真的在点击数据库,这不是单元测试,而是集成测试 基本上你有两个选择,其中一个有它的优点和缺点:

  1. 继续使用集成测试的想法,但要确保您使用的数据与预期的一致。
    这可以使用测试数据库中的存储过程来实现在调用数据时重新创建数据,您可以在测试初始化​​中调用此过程然后执行所有测试。
    这里的主要缺点是测试将比单元测试花费更多时间并将耗费更多资源 主要的优势是您可以确保代码与数据库的良好集成。

  2. 选择使用真正的单元测试,在此选项中,您根本不会使用数据库,而是创建表示数据库中数据的内存中对象。
    因为您将在单元测试的排列部分创建此对象,所以您可以极其清楚地知道他们持有的数据 这里的主要缺点是您无法确定代码是否与数据库完美集成。
    主要的优势是测试将比整数测试花费更少的时间并且将花费更少的资源,而且即使您的测试数据库关闭,您的测试也可以运行。

  3. 如果您希望实际上可以选择使用这两个选项,这很有用,因为每个测试都是从不同的角度测试您的代码。

    可以找到有关单元测试与整数测试的更多信息here

相关问题