Как написать модульные тесты для вызовов базы данных
Я близок к началу нового проекта и (задыхаюсь!) Впервые в жизни пытаюсь включить модульные тесты в мой проект.
У меня возникли проблемы при разработке самих модульных тестов. У меня есть несколько методов, которые достаточно легко протестировать (передать два значения и проверить ожидаемый результат). У меня есть другие части кода, которые делают более сложные вещи, такие как выполнение запросов к базе данных, и я не уверен, как их протестировать.
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.
Первый вопрос, вероятно, самый сложный: что я должен даже проверить в такой ситуации?
Как только это будет решено, встает вопрос о том, следует ли макетировать компоненты базы данных или пытаться провести тестирование на фактической базе данных.