小编cde*_*urs的帖子

如何使用Moq模拟SqlParameterCollection

我试图模拟数据库操作.我在嘲笑方面有问题SqlParameterCollection.我试图创建virtual方法会返回DbParameterCollection,但那时候我失去了所有的功能,SqlParameterCollection给喜欢AddWithValue等是否有一种方法,我可以嘲笑SqlParameterCollection?单元测试DAL还有其他方法吗?我正在使用Moq.

代码是这样的:

在DAL:

protected virtual IDbConnection GetConnection(string connectionString)
{
    return new SqlConnection(connectionString);
}

protected virtual IDbCommand GetCommand(IDbConnection cn)
{
    return cn.CreateCommand();
}

protected virtual IDbTransaction GetTransaction(IDbConnection cn)
{
    return cn.BeginTransaction(IsolationLevel.Serializable);
}

Public Bool InsertInDatabase(DataTable dt)
{
   using (IDbConnection cn = GetConnection(cnstr))
      {
         cn.Open();

            using (IDbTransaction tran = GetTransaction(cn))
            {
                IDbCommand cmd = GetCommand(cn);
                cmd.Transaction = tran;
                cmd.Connection = cn;
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.CommandText = "sp_InsertInDatabase";
                SqlParameterCollection cmdParams = …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq sqlparameter

7
推荐指数
1
解决办法
3966
查看次数

标签 统计

c# ×1

moq ×1

sqlparameter ×1

unit-testing ×1