我接近一个新项目的开始这是我第一次尝试在我的项目中包含单元测试。
我在设计一些单元测试本身时遇到了麻烦。我有一些很容易测试的方法(传入两个值并检查预期的输出)。代码的其他部分做的事情更复杂,比如对数据库运行查询,我不知道如何测试它们。
public DataTable ExecuteQuery(SqlConnection ActiveConnection, string Query, SqlParameterCollection Parameters)
{
DataTable resultSet = new DataTable();
SqlCommand queryCommand = new SqlCommand();
try
{
queryCommand.Connection = ActiveConnection;
queryCommand.CommandText = Query;
if (Parameters != null)
{
foreach (SqlParameter param in Parameters)
{
queryCommand.Parameters.Add(param);
}
}
SqlDataAdapter queryDA = new SqlDataAdapter(queryCommand);
queryDA.Fill(resultSet);
}
catch (Exception ex)
{
//TODO: Improve error handling
Console.WriteLine(ex.Message);
}
return resultSet;
}
此方法实际上接收从数据库中提取某些数据所需的所有位和片段,并返回 DataTable 对象中的数据。
第一个问题可能是最复杂的: 在这种情况下我应该测试什么?
一旦解决了这个问题,就出现了是否模拟数据库组件或者尝试对实际的 DB 进行测试的问题。