【发布时间】:2017-06-05 05:30:37
【问题描述】:
我有以下方法:
public async Task SaveToLogAsync(string clientId)
{
try
{
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
using (var cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = @"INSERT INTO TerminalsActivityLog(ClientId, LogTime) VALUES(@clientId, @logTime)";
cmd.Parameters.Add("@clientId", SqlDbType.VarChar).Value = clientId;
DateTime dt = DateTime.Now;
cmd.Parameters.Add("@logTime", SqlDbType.DateTime).Value = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0 , 0 , dt.Kind);
await conn.OpenAsync();
await cmd.ExecuteNonQueryAsync();
}
}
}
catch (Exception )
{
}
}
如何在不保存到数据库的情况下编写单元测试?最好的选择是 EF 的 connectionString 中的 InMemory db。或者我应该保存到数据库然后删除保存的数据?
【问题讨论】:
标签: c# sql unit-testing