none
Visual Studio 2012 Fakes 单元测试问题 RRS feed

  • 问题

  • 你好,我在项目中尝试使用fakes单元测试框架进行单元测试:

    有两个类:SqlHelper,LtyMsgService

    public abstract class SqlHelper { private static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["TestConnectionString"].ToString(); public static int ExecuteNonQuery(string sql, SqlParameter[] para,CommandType type) { string test= ConfigurationManager.ConnectionStrings["TrainingBaseConnectionString"].ToString(); //创建连接对象 SqlConnection conn = new SqlConnection(ConnectionString); //打开数据库连接 conn.Open(); //创建Comm对象 SqlCommand comm = new SqlCommand(sql, conn); //设置Comm执行类型 comm.CommandType = type; //假如参数不为空,则添加参数 if (para != null) { comm.Parameters.AddRange(para); } //返回Reader对象 return comm.ExecuteNonQuery(CommandBehavior.CloseConnection); } #endregion }



    public class LtyService { public int Query(string id,string name) {

    string sql = "usp_Test";

    SqlParameter[] sqlParams = new SqlParameter[]{

    new SqlParameter("@Name",SqlDbType.VarChar,10){Value = name},

    new SqlParameter("@ID",SqlDbType.Int){Value = id}

    }; return SqlHelper.ExecuteNonQuery(sql,sqlParams,CommandType.StoredProcedure) } }

    测试代码如下:

    [TestMethod] public void Test()

    {

    var stubLtyService = StubLtyService();

    var shimLtyService = ShimLtyService();

    LtyService ltyServ = new shimLtyService(stubLtyService);

    ltyServ.Query(1,"Hello");

    }

    运行测试报错如下:

    return SqlHelper.ExecuteNonQuery(sql,sqlParams,CommandType.StoredProcedure);

    "SqlHelper 的类型初始值设定项引发异常。"

    这个该如何解决呢?

    2013年7月12日 13:36