首页 > 解决方案 > 是否可以使用 MOQ 框架模拟将“SqlDataReader”作为返回类型的 ExecuteReader 方法?

问题描述

我正在使用“Moq”框架编写集成测试脚本。想知道模拟具有“SqlDataReader”作为返回类型的 Execute Reader 方法的可能方法。

//Code which needs to mock

List<list> li = new List<list>();

query = "some query as input";
using (SqlDataReader sqlDataReader = databaseWrapper.ExecuteReader(query, null))
{
    if (sqlDataReader != null)
    {
        if (sqlDataReader.HasRows)
        {
            while (sqlDataReader.Read())
            {
                R1 rm = new R1
                {
                    r3 = Convert.ToString(sqlDataReader["Name"]),
                    r4 = Convert.ToInt32(sqlDataReader["Id"])
                };
                li.Add(rm);
            }
        }

        rR.li = li;
        return rR;
    }
}

正如我所研究的,我们可以模拟 IDataReader 但没有 'SqlData Reader',因为 'SqlDataReader 没有任何构造函数。

有没有人尝试过以不同的方式来模拟“SqlDataReader”。请帮助我。

标签: c#moqsqldatareader

解决方案


推荐阅读