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.

questionAnswers(9)

yourAnswerToTheQuestion