【发布时间】:2018-01-24 21:39:36
【问题描述】:
我有下面的代码,我看过Moq and SqlConnection?和How can I stub IDBconnection,但是我仍然不知道如何模拟下面的sqlconnection。
public class SqlBulkWriter : ISqlBulkWriter
{
private readonly string _dbConnectionString;;
public SqlBulkWriter(string dbConnectionString)
{
this._dbConnectionString = dbConnectionString;
}
public void EmptyTable(string schema, string tableName)
{
using (var connection = new SqlConnection(this._dbConnectionString))
{
try
{
connection.Open();
using (var truncate = new SqlCommand($"TRUNCATE TABLE [{schema}].[{tableName}] ", connection))
{
truncate.ExecuteNonQuery();
}
}
catch (Exception ex)
{
throw new Exception(ex);
}
finally
{
connection.Close();
}
}
}
}
我要对 EmptyTable 做单元测试,我想我应该先模拟 sqlconnection 吗?或者我该如何对 EmptyTempTable 进行单元测试?
谢谢!许多人欣赏!
【问题讨论】:
-
这是可测试的吗?还是我应该重构代码?如果是这样,我该如何重构代码?谢谢!
-
您将代码与实现问题紧密耦合。考虑使用抽象并将它们注入到类中。
-
好的。我改变了很多
标签: unit-testing ado.net moq xunit sqlconnection