我试图模拟数据库操作.我在嘲笑方面有问题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)