So schreiben Sie Komponententests für Datenbankaufrufe

Ich stehe kurz vor dem Beginn eines neuen Projekts und (keuch!) Versuche zum ersten Mal, Unit-Tests in ein Projekt von mir aufzunehmen.

Ich habe Probleme, einige der Komponententests selbst zu entwickeln. Ich habe ein paar Methoden, die sich leicht testen ließen (zwei Werte übergeben und auf erwartete Ausgabe prüfen). Ich habe andere Teile des Codes, die komplexere Aufgaben ausführen, z. B. das Ausführen von Abfragen für die Datenbank, und ich bin nicht sicher, wie ich sie testen soll.

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;
}

Diese Methode nimmt im Wesentlichen alle erforderlichen Bits und Teile auf, um einige Daten aus der Datenbank zu extrahieren, und gibt die Daten in einem DataTable-Objekt zurück.

Die erste Frage ist wahrscheinlich die komplexeste: Was sollte ich in einer solchen Situation überhaupt testen?

Sobald dies erledigt ist, stellt sich die Frage, ob die Datenbankkomponenten verspottet oder gegen die eigentliche Datenbank getestet werden sollen.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage