使用本地引用的测试方法

本文关键字:测试方法 引用 | 更新日期: 2023-09-27 18:13:12

在我们的环境中,我们使用自定义数据访问来访问遗留的Oracle数据库。它允许我们调用存储过程,并以DataTable的形式获得结果,或者如果返回的数据只有一行数据,则以名称/值对列表的形式获得结果。它要求我们在每次调用时都从这个库实例化一个新对象,然后确保它在完成时被处理掉。

例如,我们可以这样做:

    DataReader reader = new DataReader("StoredProcedureName");
    reader.AddParameter(name, DbType.Array, ParameterDirection.Input, data);
    DataTable dt;
    try
    {
        dt = reader.Open();
    }
    finally
    {
        reader.Dispose();
    }

我的问题是我不确定如何测试使用此库进行数据库调用的方法。我对单元测试比较陌生,并且正在努力开始使用它。我已经开始使用moq,并为我的其他应用程序代码编写了一堆测试用例。我不知道如何模拟数据库库。构建一个工厂对象,它将创建数据阅读器的新实例,然后模拟工厂,这有意义吗?

使用本地引用的测试方法

您将无法"单元"测试代码的最低级别(即围绕ADO的薄包装)。(你正在调用你的数据访问层)。每一个其他层你都可以使用mock来隔离它,但是为了测试最低层,你应该只写"系统"测试,这些测试将真正地碰到一个真实的数据库(这将涉及到设置它,以便你可以在一个已知的状态下重新创建数据库,作为测试运行的一部分-数据库项目非常适合这个)。