Можно ли смоделировать метод ExecuteReader, который имеет SqlDataReader в качестве типа возврата, используя структуру MOQ? - PullRequest
0 голосов
/ 02 мая 2019

Я работаю над скриптами Integration Test, используя инфраструктуру Moq.Хотелось бы узнать о возможных способах имитации метода Execute Reader, в котором в качестве возвращаемого типа используется SqlDataReader.

//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.Пожалуйста, помогите мне в этом.

...