我即将开始一个新项目,并且(喘气!)我第一次尝试在我的项目中包含单元测试。
我自己设计一些单元测试时遇到了麻烦。我有一些方法很容易测试(传入两个值并检查预期的输出)。我有代码的其他部分正在做更复杂的事情,比如对数据库运行查询,我不知道如何测试它们。
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 对象中返回数据。
第一个问题可能是最复杂的:在这种情况下,我什至应该测试什么?
一旦解决了问题,是否要模拟数据库组件或尝试针对实际数据库进行测试。