Jak pisać testy jednostkowe dla połączeń z bazą danych
Zbliżam się do początku nowego projektu i (łapie!) Po raz pierwszy próbuję włączyć testy jednostkowe do mojego projektu.
Mam problem z samodzielnym opracowaniem niektórych testów jednostkowych. Mam kilka metod, które można łatwo przetestować (przekazać dwie wartości i sprawdzić oczekiwane wyjście). Mam inne części kodu, które wykonują bardziej złożone rzeczy, takie jak uruchamianie zapytań do bazy danych i nie jestem pewien, jak je przetestować.
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;
}
Ta metoda zasadniczo pobiera wszystkie niezbędne bity i elementy w celu wyodrębnienia niektórych danych z bazy danych i zwraca dane w obiekcie DataTable.
Pierwsze pytanie jest prawdopodobnie najbardziej złożone: co powinienem sprawdzić w takiej sytuacji?
Kiedy to już zostanie ustalone, pojawia się pytanie, czy wyszydzać komponenty bazy danych, czy próbować przetestować je w oparciu o rzeczywistą bazę danych.